testng.xml ファイルを使用して定義されたいくつかのテストを Gradle に実行させようとしています。私のtestng.xmlファイルは次のようになります。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="mySuite" verbose="1">
<listeners>
<listener class-name="mypackage.MyListener" />
<listener class-name="mypackage.TestOrderer" />
</listeners>
<test name="Tests">
<classes>
<class name="mytestpackage.CrazyTest1"/>
<class name="mytestpackage.CrazyTest2"/>
<class name="mytestpackage.CrazyTest3"/>
</classes>
</test>
</suite>
では、なぜこれが必要なのですか?ここにリストされているものと同様の注釈によって定義された方法でテストが編成されていることを確認したいと思います。ご想像のとおり、TestOrderer は IMethodInterceptor です。
ここに問題があります。Gradle が私の testng.xml ファイルを乗っ取り、テスト ディレクトリをスクレイピングして、実行したいテストを見つけているようです。これを無効にしても、メソッドを適切に実行できません。これは私がうまくいくはずだと思うものですが、うまくいきません。
test {
useTestNG()
options.suites("src/test/resources/crazyTestNG.xml")
# Adding
# scanForTestClasses = false
# causes zero tests to be executed, since the class names don't end in Test
}
それは簡単なことのように思えます... TestNGプロセスをフォークして実行させますが、Gradleに邪魔にならないように指示してテストを実行する方法がわかりません。