maven surefire插件依赖关系surefire-junit47阻止junit 5测试检测

fkvaft9z  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(416)

由于公司的政策,我的项目必须从父pom继承,我不能更改。父pom在 pluginManagement 章节:

<build>
   <pluginManagment>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M4</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-junit47</artifactId>
              <version>3.0.0-M4</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
   </dependencyManagement>
</build>

这将强制surefire提供程序使用junit core(4.7+)。但是,我的项目只使用JUnit5.7.0。我可以从ide运行单元测试,没问题。但当我跑的时候 mvn clean test ,未检测到任何单元测试:

[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

为了调试,我删除了对父pom的引用,并将父pom的内容复制到项目的pom中,得到了相同的结果。当我从中删除上面的surefire插件定义时 pluginManagement ,一切正常。检测到并运行所有测试。
回到原来的设置与父pom,在我的 pluginManagement 部分,我尝试重写 maven-surefire-plugin 没有 surefire-junit47 附属国。我加了一个 junit-platform-surefire-provider 依赖,但得到一个 ForkedProcessEvent 错误,因为JUnit4和5提供程序都冲突。似乎我的依赖关系只是添加到父pom的依赖关系中。
如何排除或覆盖父pom的 maven-surefire-plugin 来自孩子的依赖?
maven版本:3.6.3
maven编译器版本:3.8.1

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题