我有以下 TestNG 单元测试类:
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,它们就会运行由 Surefire 作为 TestNG 测试。