Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven surefire-junit47未运行JUnit4测试_Java_Maven_Junit_Junit4_Maven Surefire Plugin - Fatal编程技术网

Java maven surefire-junit47未运行JUnit4测试

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.

在包含大量JUnit4测试的maven项目中,surefire-junit47没有执行测试

此项目中没有testng测试,pom中也没有testng。但是这个项目依赖于另一个在pom中有testng的项目。您可以在下面的mvn-X输出中看到它导入testng

为了便于参考,以下是我使用的文档:

这里有几个pom配置说明了这个问题

鉴于此测试类组织:

- 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