Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Announcing TestNG 5.9

TestNGがバージョンアップしました。

内容を簡単に翻訳します。

Otaku, Cedric's weblog: Announcing TestNG 5.9


バグフィックスといくつかの新機能をリリース。

  • クラスを指定して並列処理が可能になった。以前のバージョンでは「methods」か「tests」を指定できた。methodsはすべてのテストメソッドが別のスレッドで実行される。testsはタグにあるすべてのメソッドが同じスレッドで実行されるが、各タグは別のスレッドで実行される。「classes」はこの機能をテストクラスに拡張したものだ。同じクラスにあるすべてのメソッドは同じスレッドで実行されるが各クラスは別のスレッドで実行される。もちろんスレッドプールサイズとタイムアウトは設定可能だ。
  • invocationCount属性を使った@Testメソッドにタイムアウトを指定できる。この方法では50回呼び出すテストメソッドに対して10秒の最大実行時間を指定できる。もしこの時間内にすべての呼び出しが完了しなければ、テストはfailとしてマークされる。
  • TestNG APIを使う開発者を援助するためにいくつか新しいインターフェースを作成した。IAnnotationTransformer2は@TestとIInvokedMethodListenerよりもアノテーションを変更する能力を拡張したものだ。これでどのテストメソッドがいつ呼び出されるのかモニターできる。


たくさんの人がこのリリースでfixし改善した内容のパッチを送ってくれた。下の完全なリリースノートに名前を載せておくよ!ありがとう!


Release notes for TestNG 5.9

  • 追加: 新しいAntタスクのbooleanフラグ: delegateCommandSystemProperties (Justin)
  • 追加: testng-1.0.dtdにおけるのskipfailedinvocations(Gael Marziou / Stevo Slavic)
  • 追加: コマンドラインとAntタスクでのでの-testrunfactory(Vitalyi Pamajonkov)
  • 追加: TESTNG-298: parallel="classes"、クラスをまとめて同一スレッドでの完全に実行する。
  • 追加: @BeforeMethodでObject[]をパラメータとして宣言できる。テストメソッドのパラメータが渡される。
  • 追加: IAnnotationTransformer2
  • 追加: @Test(invocationTimeOut)、invocationCountでの合計時間でタイムアウトを設定できる。
  • 追加: IInvokedMethodListener
  • 追加: -testjarがtestng.xmlのないJARファイルをサポートした。
  • 修正: IInvokedMethodListenerがコマンドラインから正確に認識されないバグ
  • 修正: TESTNG-309 DTDファイルにおける属性の不正なデフォルト値
  • 修正: TESTNG-192: JUnitでのXMLの出力が誤ったテストを含んでいる(Aleksandar Borojevic)
  • 修正: 出力したsuiteにデフォルトで並列処理しないように設定する(Mark Derricutt)
  • 修正: コマンドラインでの-testJarでパースにおけるバグ
  • 修正: testng-failed.xmlがリスナーを含んでいない
  • 修正: testng.xmlで指定したアノテーショントランスフォーマーが実行されない
  • 修正: @Testメソッドにおいて@DataProviderを使った@BeforeMethodsでの@Parametersが正確に動作しない
  • 修正: testng-failed.xmlが正確に出力されないことがある(Borojevic)
  • 修正: TESTNG-228: Assert.assertEqualsNoOrder
  • 修正: TESTNG-229: Assert.assertEqualsが引数が設定されたとき正確に動作しない
  • 修正: TESTNG-36: assertEquals(Collection actual, Collection expected, String message)のバグ
  • 修正: TESTNG-296: 不適切なJAR URLが-testJarを壊す
  • 修正: TESTNG-297: 失敗したテストスイートを構築しているときにTestNGが見たところ決して実行を止めない(Gregg Yost)
  • 修正: TESTNG-285: @Test(sequential=true)が継承したクラスで正確に動作しない
  • 修正: TESTNG-254: XmlSuite toXML()がリスナーを無視する
  • 修正: TESTNG-276: Reporterクラスでのスレッドセーフ問題
  • 修正: TESTNG-277: Reporter.getCurrentTestResult()をpublicにした
  • 修正: XmlTest#getVerboseでの潜在的なNPE(NullPointerException)(Ryan Morgan)
  • 修正: EmailableReporterが各テストメソッドの最初のグループでのみ表示される
  • 修正: でタイムアウトが動作しない
  • 修正: ベースクラスで@BeforeTestが失敗するとそのあとのテストメソッドをスキップしない
  • 修正: TESTNG-195: @AfterMethodが現在のテストメソッドが失敗したかどうか知る方法がない
  • 修正: TESTNG-249: オーバーライドしたテストメソッドはで指定されていればお互いに隠されていた
  • 修正: @Factoryが生成したテストでのDataProviderが同じインスタンスからすべて呼び出される
  • 修正: enabledがconfigurationで動作しない
  • 修正: IIinvokedMethodListenerがTestNGで正しく追加されていない
  • 修正: XmlSuite#toXmlでのNPE
  • 修正: TESTNG-231: スイートをXMLに変換する際のNullPointerException(Mark)