Maven で TestNG を使用すると、奇妙な問題が発生します。ここに投稿するにはコードが多すぎますが、関連する例を投稿します。
私はpom.xmlでTestNGテストのためにこれを持っています:
....other pom stuff....
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.2</version>
<type>jar</type>
</dependency>
....other pom stuff....
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
....other pom stuff....
私のtestng.xmlファイルは次のようになります。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SOTest">
<test name="SOTest">
<classes>
<class name="SOTest"/>
</classes>
</test>
</suite>
SOTest.java は次のようになります。
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
public class SOTest {
@BeforeSuite
public void setup() {
...DO SOME STUFF...
System.out.println("foo");
}
@BeforeTest
public void setupTest() {
...DO SOME STUFF...
System.out.println("bar");
}
@Test
public void test_good_subkey_pass() {
System.out.println("baz");
...DO SOME STUFF...
}
}
を実行するmvn test
と、「foo」と「bar」が出力されますが、ハングして「baz」が出力されませんか? アノテーションが付けられたメソッドの実行を妨げるものを知っている人は@Test
いますか?
アップデート
test_good_subkey_pass()
その後、無限ループを含む別のテストがありました。最初のテストの実行が停止するのはなぜですか? preserve-order
属性が に設定されていないことに注意してくださいfalse
。