マルチスレッドを使用してテストしたいJavaMavenプロジェクトがあります。src / testにtestng.xmlがあり、mavensurefireプラグインがそれを使用するように構成されています。このページのように:http: //maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html
編集:surefirepomエントリを追加しました
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
私はsurefire2.12.4を使用しています。
これは私のtestng.xmlファイルです
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Testng" parallel="methods" thread-count="3">
<test name="all" annotations="JDK5">
<packages>
<package name="my.package.*"/>
</packages>
</test>
</suite>
いくつかのテストメソッドの中に、printステートメントがあります。
System.out.println(Thread.currentThread().getName());
これは、実行するたびに常に同じ出力になります(pool-1-thread-1)。testngが並列で実行されている場合は、さまざまなスレッドが実行されます。
私の質問は次のとおりです。testngがマルチスレッドで実行されていないのはなぜですか?testngがマルチスレッドで実行されているかどうかを確認するためのより良い方法はありますか?
編集:クラスまたはメソッド
スレッドを使用して実行すると、各テストクラスは独自のスレッドで実行されているように見えますが、各メソッドでは実行されていません。testng.xmlで、parallel = "methods"を設定したので、メソッドごとに実行する必要があります。メソッドごとにできませんか?