読者です 読者をやめる 読者になる 読者になる

Fight the Future

何かを始めたら、半分成功したのと同じ

IntelliJでTestNGの日本語名のテストメソッドが、MalformedByteSequenceExceptionになるとき

ここ数カ月でIDEをeclipseからIntelliJに変えました。 もう戻れません。年末のセールで、IntelliJのライセンスを買うことに決めています。で、IntelliJでTestNGのテストを書いて、そのテストメソッドだけ実行、ってやると、「MalformedByteSequenceException…

カバレッジについて以前から考えてたみたい

コードカバレッジは有益? - Fight the Future じゅくのblog テストカバレッジの意味 - Fight the Future じゅくのblog ただ、カバレッジと一言で言ってもいろんな種類がある。 クラスカバレッジ メソッドカバレッジ ステートメントカバレッジ ブロックカバ…

Javaのコードカバレッジツール

参考文献 Next Generation Java Testing: TestNG and Advanced Concepts作者: C馘ric Suleiman, Hani Beust出版社/メーカー: Addison-Wesley Professional発売日: 2007/10/15メディア: ペーパーバック クリック: 28回この商品を含むブログ (5件) を見る Clov…

TestNG5.10ではデータプロバイダを使用した並列処理でのテストが追加される

Otaku, Cedric's weblog: Advanced parallel testing with TestNG and data providers TestNGのデータプロバイダを利用してのより進んだ並列テスト TestNGは別々のスレッドでテストを実行できる。スレッドプールサイズとタイムアウトを設定するだけでいい。T…

Announcing TestNG 5.9

TestNGがバージョンアップしました。内容を簡単に翻訳します。Otaku, Cedric's weblog: Announcing TestNG 5.9 バグフィックスといくつかの新機能をリリース。 クラスを指定して並列処理が可能になった。以前のバージョンでは「methods」か「tests」を指定で…

DbUnitNGのロゴを作ってもらいました!

TestNGとDbUnitを連携させ、より簡単にデータベース接続テストを作成できるようにします。たとえば、アノテーションを用いて初期データを投入できます。 DbUnitNG プロジェクト日本語トップページ - SourceForge.JP

新規ではなく改修プロジェクトではJUnitよりTestNG

だと実感。 すでに動作しているアプリケーションだから、テストを作成するスコープが通常と逆になる。 つまり、unit→functional→integrateが新規であるなら、integrate→functional→unitとなる。 それはもちろんすでに動作しているから。 この場合unitをメイ…

ScalaでTestNGのテストをする

Javaで書いたこういうTestNGのテストがある。 import static org.testng.Assert.assertEquals; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class TestNGSample { private Target target; @Test public void v…

ちょww『The Art of Unit Testing』wwww

来年2009年3月に『The Art of Unit Testing』って本がManningから出るらしい。 が、その画像がこれ。 武士。。。

DbUnitNG10,000ページビュー突破&ダウンロードもしてもらえてる

TestNG + DbUnitのライブラリDbUnitNGですが、 日々見てもらえてるみたいです。 僕がまったく見ていない日でも1日100ページビューぐらいあって、 ダウンロードもようやく20を超えてくれました。 内輪がどれだけかわからないですがw でも今まで僕1人でやって…

LazyなDataProvider-TestNGをさらに深く理解してみる(3)

@ITさんの連載でデータ駆動テストで簡単にテストのパターンを増やすを解説した。 DataProviderはTestNGで注目を集める便利な機能だ。 DataProviderのメソッドはObject配列を戻り値とすればよいだけなので、 ファイルからでもデータベースからでもテストデー…

アノテーショントランスフォーマー-TestNGをさらに深く理解してみる(2)

打って変わって、今回は実装の話。 TestNGでは実行時に@Testのさまざまな属性の値を変えることができる。 それがアノテーショントランスフォーマー。 TestNGのバージョン5.3からの目玉機能。 サンプルで試してみる。 まずはテストクラス。@Testのtimeout属性…

ステートフルなテスト-TestNGをさらに深く理解してみる(1)

@ITさんの連載も終わり、Next Generation Java Testing: TestNG and Advanced Conceptsをネタに記事では書かなかったことを紹介していく。 不定期連載の予定。 ステートフルなテストとは TestNGは各テストメソッドの呼び出しで同じインスタンスを利用する。…

@ITさんTestNG記事最終回公開!

実現場でTestNGを活躍させる“5”つのテクニック (1/3) - @IT via kwout @ITさんで初連載いたしましたTestNG記事の最終回が公開されました! 【1】Antからテストをサクッと実行! 【2】テストを並列実行してスピードアップ! 【3】いままでのJUnitのテストは…

DbUnitNG0.6リリース!

DbUnitNGバージョン0.6をリリースしました!AssertionHelperクラスのアサーションメソッドから引数としてClassクラスをすべて除きました。 実行したテストクラスはThreadLocalにあるため、引数として渡す必要がなくなりました。Javadocも再生成しています。 …

DbUnitNG0.5リリース!

DbUnitNGのバージョン0.5をリリースしました! ダウンロード - DbUnitNG - SourceForge.JP アサートメソッドの呼び出しがやや煩雑な感じで、ThreadLocalを使ったらどうかという提案(とパッチ)をもらったので、 導入したいと思います。 これでアサートの引数…

アノテーションのデフォルト値を一覧にしました

TestNG + DbUnitライブラリ「DbUnitNG」で、アノテーションのデフォルト値がわかりづらいという指摘をいただいたので、 AnnotationDefault - DbUnitNG Wiki - SourceForge.JPに一覧にしました!

依存ライブラリもコミットしました

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPですが、 Subversionに依存するライブラリもすべてコミットしました。 libディレクトリに入っています。 eclipseなら.projectと.classpathもコミットしているので、 それもチェックアウトしてもら…

@ITにTestNGの記事を連載します

JUnitより簡単なオープンソースの「TestNG」とは? (1/3) - @IT via kwout というわけで、これからTestNG普及への活動をしていきます。このBlogもそうだけど、より多くのエンジニアの目に触れるようなところでもTestNGを紹介しようと思います。 DbUnitNGの…

テストコードは違う言語がいい

個人的にはエンタープライズなシステムはJavaを始めとする静的言語が適切だと思ってるけど、テストコードまでJavaで書く必要はないんじゃないか。 テストコードというのはその対象(メソッドとか機能)の第1のクライアントだ。 つまり、使う側であって使われる…

TestNGでテストにプライオリティをつける

Otaku, Cedric's weblog: Test method priorities in TestNGでTestNGの開発者であるCedricがテストメソッドにプライオリティをつける方法を紹介してます。 TestNGには豊富なリスナーインタフェースがあり、リスナーのメソッドの中でテストメソッドのアノテー…

DbUnitNGの今後

TestNGとDbUnitNGを連携するライブラリDbUnitNGは、考えていた機能は作り終えました。 今後は、ライブラリのテストケースを増やして、バグを修正します。 多くの機能を提供するライブラリでもないので、使いやすいと思います。 提供する機能は、大きく3つで…

TestNG+DbUnitライブラリはApache License, Version 2.0に対応しました

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPのライセンスをApache License, Version 2.0にきちんとしました(つもりです)。 以下のことをしました。 LICENSE.txtをトップディレクトリに配置する ソースコードにライセンスへのリファレンスを追…

社内勉強会で発表したJUnit4&TestNGの資料を公開します

日曜日に社内勉強会をしました。 僕は株式会社クロノスに所属しているんですが、「クロノスエンジニアの会」略して「エン会」というタイトルで勉強会をしました。 今までの勉強会のスタイルと変えて、デブサミのようなイメージで社内の有志数人で、様々な内…

TestNGのテストをAntで実行する

<taskdef resource="testngtasks" classpath="lib/testng-5.8-jdk15.jar" /> <path id="run.cp"> <fileset dir="lib" includes="*.jar"/> </path> <target name="run-tests"> <testng classpathref="run.cp" haltOnfailure="true"> <…</testng></target></taskdef>

DbUnitNG0.4リリース!

TestNG+DbUnitライブラリであるDbUnitNGのバージョン0.4をリリースしました。 ダウンロード - DbUnitNG - SourceForge.JP DbUnitNGは、TestNGとDbUnitを連携させ、SetUpやTearDownのアノテーション化、BeanのListをDbUnitのデータセットへ変換といったことを…

DbUnitライブラリでDBデータをXML,Excel,CSVに出力するクラスを作りました

DBに接続して、任意のテーブルあるいは全テーブルをDbUnitの形式でファイルに出力するユーティリティクラスを作りました。 org.dbunitng.data.TestDataFileMakerクラスです。 使い方は簡単です。 public TestDataFileMaker(String driver, String url, Strin…

DbUnitライブラリでCSV形式のファイルにも対応しました

TestNG+DbUnitライブラリDbUnitNGで、初期値や期待値のファイルとしてCSVにも対応しました(他はXMLとExcel)。 意外に知らないDbUnitでCSVを使う方法 - Fight the Future じゅくのblogにあるように、DbUnitではCSVファイルの場合「table-ordering.txt」という…

DbUnitのCSVでnullを扱う

値としてnullとそのまま書くだけでOK。 row[col] = row[col].equals(CsvDataSetWriter.NULL) ? null : row[col]; public static final String NULL = "null"; こんな定数もあるから、きちんとダブルクォートもエスケープしてくれるみたい。 private static f…

意外に知らないDbUnitでCSVを使う方法

「dbunit csv」で検索してもヒットしなかったので書いておく。 DbUnit2.1から、初期値や期待値をCSVファイルに書くことができる。XMLやExcelの代わりに。 使い方はとても簡単。 テーブル名.csvというファイルを作成する(EMPテーブルならemp.csv) CSVファイル…

@TableAssertでクエリをファイルに書けます

TestNG+DbUnitライブラリであるDbUnitNGで、DbUnitライブラリ@TableAssertでDBとアサートできます - Fight the Future じゅくのblogにある@TableAssertに機能を追加しました。結果をDBから取得するクエリをプロパティファイルに記述できるようにしました。 @…

Google Testing Blog

さらに、Googleは「Google Testing Blog」というBlogをやっていた。 内容もかなり興味深い。 ただ、1エントリの文章量が多く、読むのが遅い僕にはつらい。。。 Google Testing Blog

Google Test Automation Conference

さっきのTestNGの動画で知ったばかりだけど、どうやらGoogleは毎年Google Test Automation Conferenceというのをやってる。 Google Testing Blog: Call for Attendance: GTAC 2008 今年はシアトルで10/23,24にやるみたい。 TestNGの動画は去年のもので、資料…

TestNGのプレゼン

FounderであるCedric BeustのGoogle Test Automation Conferenceのプレゼン。

世界一やさしいTestNGの使い方

JARファイルをダウンロードする TestNGのサイトにいきます。 メニューから「Download」を選びます。 「download TestNG here.」のリンクを押すと最新のJARファイルをダウンロードできます。 ダウンロードしたzipファイルを解凍します。 解凍したディレクトリ…

@TableAssertだと何がいいのか

僕の作っているTestNG + DbUnitライブラリでDBとのアサートをアノテーションで指定できるわけですけど。 @TableAssert(names = "dept", pathname = "insert_expected.xml") @SetUpOperation(pathname = "dept.xml", value = DatabaseOperationType.DELETE_AL…

JUnitは死なず

JUnitはTestNGよりも多く採用され拡張されているものの、TestNGの方が多くの機能を提供し、JUnit用のテスト(スクリプト)を実行することも可能なので、テスト・フレームワークとしてTestNGを選択する方が魅力的な選択に思えるようである。 InfoQ: JUnitは死な…

DbUnitライブラリ@TableAssertでDBとアサートできます

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPで期待値のファイルとデータベースのテーブルをアサートするアノテーションを作りました。 @TableAssertです。 こんな感じ。 @TableAssert(names = "dept", pathname = "insert_expected.xml") @Se…

TestNG eclipseプラグインでのリスナークラス登録の続き

TestNGプラグインのリスナーより順序を前で自分のリスナーを登録したい - Fight the Future じゅくのblogで困っているわけだけど、 こりゃTestNGのソースを変えないと無理かもしれないなあ。 TestNGのeclipseプラグインはTestNGクラスではなくサブクラスのRe…

DbUnitライブラリで期待値nullはこう表します

<dataset> <DEPT DEPTNO="10" DNAME="[null]" LOC="NEW YORK"/> </dataset> [null]と記述すると、nullとして扱います。 AssertionHelperクラスを使ってアサートする場合です。 内部的にはReplacementDataSetを使っています。

DbUnitNG0.3リリース!

DbUnitNG プロジェクト日本語トップページ - SourceForge.JP 期待値ファイルからデータセットを作成する際に、ReplacementDataSetを使用するようにしました。 @SetupOperationにおいてテストスイート全体でデフォルトのでDatabaseOperationを設定できるよう…

TestNG ML(英語)に投げてみた

TestNGプラグインのリスナーより順序を前で自分のリスナーを登録したい - Fight the Future じゅくのblogがどうしてもわからないので、 testng-users | Google Groups に投げてみた。 Hi, With TestNG eclipse plugin, I add my listener class. Then listen…

TestNGプラグインのリスナーより順序を前で自分のリスナーを登録したい

eclipseのTestNGプラグインを利用してデバッグ実行すると、 リスナーは以下の順で Listに入っていた。 [org.testng.remote.strprotocol.RemoteMessageSenderTestListener@50cf54, org.testng.reporters.TextReporter@5bc8c9, org.dbunitng.listeners.DbUnitN…

@TableAssertでアサートしたかったけど、失敗

誰か助けてください>< 期待値とDBのテーブルを比較するようなテストなら、アサートもアノテーションでできるようにしようと考えた。 こんな感じで。 @TableAssert(names = "dept", pathname = "insert_expected.xml", queries = "select dname, deptno, loc …

DbUnitで読み込むファイルの値にnullを設定する

DbUnitでは初期値や期待値をXMLやExcelに記述することができる。 ただ、nullを表現したいときは困ってしまう。 たとえばXMLで次のように記述したとする。 <dataset> <HUMAN NAME="jyukutyo" NULLCOLUMN="" /> </dataset> この場合、NULLCOLUMNはnullではなく空文字となる。 本当にそうなるかサンプルプログラムで読み込…

DbUnitでSQL文の結果をそのままデータセットにする

public static void main(String[] args) throws Exception { JdbcDatabaseTester tester = new JdbcDatabaseTester( "com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/testframework", "root", "root"); QueryDataSet dataSet = new QueryDataSet(tester.…

TestNGでXMLを使わずにテストを実行する

TestNGではtestng.xml(ファイル名は任意)というXMLを使ってテストを実行するのですが、 XMLを使わずにプログラミングでテストを実行することもできます。 public static void main(String[] args) { TestNG testNG = new TestNG(); testNG.addListener(new D…

DbUnitライブラリでデフォルトのDatabaseOperationを指定できます

@SetupOperationでDbUnitのDatabaseOperationを指定できるわけですが、 テストメソッドごとに毎回指定するのは手間なので、 テストスイート全体でデフォルトを設定できるようにしました。 接続情報と同様に、 testng.xmlか@DbUnitNGアノテーションで指定する…

DbUnit + TestNGライブラリDbUnitNGプロジェクトWiki更新しました

DbUnitNG Wiki - SourceForge.JP ブログに書いていたことはすべてWikiに転載してます!

DbUnitライブラリで接続情報をアノテーションにしました

DbUnitNG プロジェクト日本語トップページ - SourceForge.JPで、データベースへの接続情報をアノテーションでも設定できるようにしました。 と同時に、スキーマも記述できるようにしました。 さらに、JDBCのURLから判断して、DbUnitのIDataTypeFactoryを自動…