一段时间以来,可以配置 maven surefire 以在一个构建中执行 jUnit 测试和 testNG 测试。我不会详细说明我这样做的原因(好吧,提示:testNG 是我们的标准框架,但像jnario这样的一些框架需要 jUnit)。
一般的方法是像这样配置surefire插件:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>${surefire.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>${surefire.version}</version>
</dependency>
</dependencies>
</plugin>
这工作得很好,jUnit 测试和 testNG 测试得到执行。
但是 - 现在我看到 testNG 也尝试执行 jUnit 测试(反之亦然) - 当然,没有成功,因为它看不到任何注释,但看起来它重新标记了测试到“通过”......无论如何,一些报告工具不再在 jUnit 测试中显示测试失败,除非我评论第二个依赖项。
有没有更好的方法来配置surefire,以便两个框架的测试只能由它们的测试运行者执行?