当前位置: 首页 > 知识库问答 >
问题:

Maven Surefire插件执行JUnit 4测试,即使JUnit Vintage Engine不在Maven项目中

公羊安怡
2023-03-14

我有一个包含JUnit 4和JUnit 5测试的Maven项目。

我使用的是版本<code>3.0.0-M07<code>中的Maven Surefire插件。Maven依赖关系树中提供了以下相关依赖关系(我使用<code>mvn依赖关系:树):

  • org.junit.jupiter:junit-jupiter-api:jar:5.8.2:test
  • org.junit.platform:junit-platform-commons:jar:1.8.2:test
  • org.junit.jupiter:junit-jupiter-params:jar:5.8.2:test
  • junit:junit:jar:4.13.2:test

根据JUnit 5留档,JUnit Vintage Engine需要存在才能执行JUnit 4测试。

然而,Maven Surefire插件同时执行JUnit 4和JUnit 5测试。

为什么 Maven Surefire 插件能够执行 JUnit 4 测试,即使我的 Maven 项目中没有对 JUnit Vintage Engine 的依赖?

共有1个答案

廖招
2023-03-14

通过使用 junit-jupiter-api maven-surefire-plugin/maven-failafe-plugin 自动加载 junit-vintage-engine执行基于 JUnit 4 的测试。

正确的方法是使用< code > JUnit-Jupiter-engine 而不是< code>junit-jupiter-api。这在surefire文档中有解释

这里有更深入的解释。

 类似资料:
  • 这是我添加的公共类NewEmptyJUnitTest的代码{ 这是pom.xml文件 我一直收到这个错误:

  • 主要内容:1 概述,2 测试执行顺序,3 例子,4 结论1 概述 在本指南中,我们将学习如何按顺序执行测试。默认情况下,JUnit以任何顺序执行测试。 2 测试执行顺序 要更改测试执行顺序,只需使用@FixMethodOrder注释测试类并指定可用的MethodSorters之一: @FixMethodOrder(MethodSorters.JVM):按照JVM返回的顺序保留测试方法。此顺序可能因运行而异。 @FixMethodOrder(Method

  • 问题内容: 我已经使用Jfunc构建了现有框架,该框架提供了即使测试用例中的一个断言失败时也可以继续执行的功能。Jfunc使用junit 3.x框架。但是现在我们正在迁移到junit4,所以我不能再使用Jfunc,而已将其替换为junit 4.10 jar。 现在的问题是,因为我们在框架中广泛使用了jfunc,并且使用junit 4,我们希望使我们的代码即使在测试用例中一个断言失败时也可以继续执行

  • 在java maven jacoco中执行测试时出错:未能执行目标组织。阿帕奇。专家插件:maven surefire插件:2.12.4:测试 早上好我正在执行一个Maven项目,我使用NetBeans编写Java代码。当我尝试运行测试文件时,会出现以下错误: 这是我的pom.xml文件: 你能帮我吗?谢谢大家的可用性!

  • 我无法成功配置maven项目来运行Java和Kotlin混合JUnit4/JUnit5Jupiter测试。 我也在JUnit team GitHub issues和Kotlin slack Channel上发布了类似的问题:-https://GitHub.com/junit-team/junit5/issues/1899-https://kotlinlang.slack.com/archives/

  • 我正在使用org.codehaus.mojo exec-maven-plugin通过我的pom.xml项目执行一个可执行的。jar文件。目前这不起作用,我不确定为什么。当我指定CommandLineArgs时会发生错误。 我的插件如下所示: