Java maven surefire-junit47未运行JUnit4测试
在包含大量JUnit4测试的maven项目中,surefire-junit47没有执行测试 此项目中没有testng测试,pom中也没有testng。但是这个项目依赖于另一个在pom中有testng的项目。您可以在下面的mvn-X输出中看到它导入testng 为了便于参考,以下是我使用的文档: 这里有几个pom配置说明了这个问题 鉴于此测试类组织:Java maven surefire-junit47未运行JUnit4测试,java,maven,junit,junit4,maven-surefire-plugin,Java,Maven,Junit,Junit4,Maven Surefire Plugin,在包含大量JUnit4测试的maven项目中,surefire-junit47没有执行测试 此项目中没有testng测试,pom中也没有testng。但是这个项目依赖于另一个在pom中有testng的项目。您可以在下面的mvn-X输出中看到它导入testng 为了便于参考,以下是我使用的文档: 这里有几个pom配置说明了这个问题 鉴于此测试类组织: - src/main/test/ - com.mycomp.qc.core.account - CopyAccountTests.
- src/main/test/
- com.mycomp.qc.core.account
- CopyAccountTests.java
- CreateAccountTests.java
- DeleteAccountTests.java
- ListAccountTests.java
- ReadAccountTests.java
- UpdateAccountTests.java
- com.mycomp.qc.core.product
- CopyProductTests.java
- CreateProductTests.java
- DeleteProductTests.java
- ListProductTests.java
- ReadProductTests.java
- UpdateProductTests.java
- ..... and 300 more packages .....
鉴于此测试类结构:
package com.mycop.qc.core.account;
导入org.junit.Assert;
导入org.junit.Test;
.... 还有更多。。。。
公共类CopyAccountTests{
@试验
公共无效copyAccount1(){
Assert.assertTrue(“通过”,true);
}
@试验
公共无效copyAccount2(){
Assert.assertTrue(“失败”,false);
}
……还有更多。。。。
}
pom配置1:按模式具体包括帐户测试
运行所有帐户测试,如文档所示
org.apache.maven.plugins
mvn-X显示默认的maven资源插件引入了JUnit3.8.X,文档称这可能会导致问题。将参考资料更新为3.1.0,但没有解决我的问题
mnv-X输出
太大了,不能包括在内。如果你想要其中的一部分,请询问。事实上,maven正在运行测试。我认为它没有运行测试的原因是因为JunitCore()在4.7+中的工作方式发生了变化
junit4似乎逐类处理测试类静态(和static@Parameters方法),其中junit47处理所有静态,然后运行所有测试。所以你会得到:
junit4
- ClassA
- staticField1
- staticMethod1
- testMethod1
- ClassB
- staticField2
- staticMethod2
- testMethod2
junit47
- Initialize:
- ClassA
- staticField1
- staticMethod1
- ClassB
- staticField2
- staticMethod2
- ClassA
- testMethod1
- ClassB
- testMethod2
关于这一点的更多细节,来自比我更了解它的人,在以下帖子中:
事实上,maven正在运行测试。我认为它没有运行测试的原因是因为JunitCore()在4.7+中的工作方式发生了变化
junit4似乎逐类处理测试类静态(和static@Parameters方法),其中junit47处理所有静态,然后运行所有测试。所以你会得到:
junit4
- ClassA
- staticField1
- staticMethod1
- testMethod1
- ClassB
- staticField2
- staticMethod2
- testMethod2
junit47
- Initialize:
- ClassA
- staticField1
- staticMethod1
- ClassB
- staticField2
- staticMethod2
- ClassA
- testMethod1
- ClassB
- testMethod2
关于这一点的更多细节,来自比我更了解它的人,在以下帖子中:
为什么您觉得需要添加surefire-junit47
依赖项?它通常是不需要的,我们在另一个项目中包含了testng作为依赖项,而这个项目又是这个项目的依赖项。当testng位于类路径上时,surefire尝试通过testng执行测试。因此,我们将基于此页面配置测试执行:如果当前项目构建不使用testng可传递依赖项,那么它是否仅用于从其他依赖项中排除testng可传递依赖项?项目测试依赖项应该相互独立。它们的作用域都是test
?为什么您觉得需要添加surefire-junit47
依赖项?它通常是不需要的,我们在另一个项目中包含了testng作为依赖项,而这个项目又是这个项目的依赖项。当testng位于类路径上时,surefire尝试通过testng执行测试。因此,我们将基于此页面配置测试执行:如果当前项目构建不使用testng可传递依赖项,那么它是否仅用于从其他依赖项中排除testng可传递依赖项?项目测试依赖项应该相互独立。它们是否都属于test
?