次の TestNG Unit Test クラスがあります。
public class SomeTest extends AbstractEntityTest {
...
@DataProvider
public Object[][] getClasses() throws Exception {
return this.getClassesForPackage(pack);
}
@Test(dataProvider = "getClasses")
public void testEntity(final Class<?> entityClass) throws Exception {
//test class...
}
}
このテストは、Eclipse で実行すると適切に実行されますが、Maven は完全に無視しているようです。問題を特定するために、このテスト クラスに別のダミー テスト メソッドを追加し、そのメソッドを Maven で実行しました。注釈の dataProvider またはメソッドのパラメーターのいずれかが原因で、surefire プラグインがメソッド testEntity をテスト メソッドとして認識しないようです。
Maven バージョン: 3.0.3
Surefire プラグイン バージョン: 2.13
TestNG バージョン: 6.8
更新 どのテストを実行するかを定義するために testng.xml ファイルを使用しません。この説明によると、これも必要ないはずです。
これは、開始するために必要な唯一のステップです。これで、テスト ソース ディレクトリ (例: src/test/java) にテストを作成できます。*Test.java などのデフォルトを使用して名前が付けられている限り、テストは実行されます。 TestNGテストとしてSurefireによって。