要将它们一起运行,可用的选项很少,但我选择了为Junit和TestNG使用不同的配置文件.但现在的问题是排除和包括测试用例.
因为如果我们在maven中将testNG依赖项添加到主项目,它将跳过所有Junit,我已经决定将它放在单独的配置文件中.所以我在默认(主)配置文件中排除TestNG测试,使用pom.xml中的以下条目进行编译:
org.apache.maven.plugins
maven-compiler-plugin
2.0.2
1.5
1.5
**/tests/**.*
**/tests/utils/**.*
和surefire插件相同.所以它适用于主配置文件并且只执行Junit4测试.但是,当我使用testNG配置文件时,它不会执行testNG测试,即使它不会编译它们.我正在使用以下配置文件来执行它们.
testNG
org.apache.maven.plugins
maven-compiler-plugin
1.5
1.5
**/tests/**.java
**/tests/utils/**.*
org.apache.maven.plugins
maven-surefire-plugin
false
**/**.class
**/tests/utils/**.class
org.testng
testng
5.8
test
jdk15
任何人都知道为什么它不包括它们并再次编译?
解决方法:
编译器插件的配置不包括TestNG类型.配置文件中的配置与默认配置合并,因此您的有效编译器配置为:
org.apache.maven.plugins
maven-compiler-plugin
1.5
1.5
**/tests/**.java
**/tests/utils/**.*
**/tests/**.*
**/tests/utils/**.*
这意味着您的TestNG类型不会被编译,因此不会运行.
如果您指定 testNG配置文件中的部分将覆盖默认排除,并且将编译和运行您的TestNG类型.我不记得它是否适用于空的排除标记(即< excludes />),您可能必须指定类似的内容以确保覆盖默认配置.
dummy
标签:java,maven-2,junit4,testng
来源: https://codeday.me/bug/20190627/1301759.html