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

如何使用Maven Failsafe插件运行JUnit5集成测试?

屠浩
2023-03-14

我将junit-jupiter-apijunit-jupiter-engine作为测试依赖项:

<properties>
    <junit.jupiter.version>5.0.1</junit.jupiter.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>${junit.jupiter.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

我的集成测试命名正确(在**/*it.java**/it*.java**/*itcase.java之后,默认情况下由Failsafe包含,默认情况下由Surefire排除)。

有什么方法可以使用JUnit5测试和Failsafe吗?

共有1个答案

赖俊
2023-03-14

请注意,从JUnit 5文档中可以看出,junit-platform-surefire-provider:

由于Surefire2.22.0的发布,来自JUnit团队的junit-platform-sureFire-provider已被弃用,并将在JUnit平台的后续发布中停止使用。

此外,您还可以阅读maven-surefire-plugin文档:

使用JUnit5平台

要开始使用JUnit平台,您需要在项目中至少添加一个TestEngine实现。例如,如果希望使用Jupiter编写测试,请将测试工件junit-jupiter-engine添加到POM中的依赖项中

因此必须指定此test依赖项:

<properties>
    <junit-jupiter.version>5.2.0</junit-jupiter.version>
</properties> 

<dependencies>
     [...]
     <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-engine</artifactId>
         <version>${junit-jupiter.version}</version>
         <scope>test</scope>
     </dependency>
     [...] 
</dependencies>
<build>
    <plugins>           
        <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.22.0</version>
        </plugin>
    </plugins>
</build>  
 类似资料:
  • Gradle4.6增加了对JUnit5的支持。 只要我没有用于例如集成测试的另一个sourceset,这对我是有效的:我不知道如何在我的集成测试中启用。 我所能做的是让任务与新的JUnit5支持一起工作,但我的任务使用JUnit5控制台并从命令行运行测试。最后,我在gradle中放弃对JUnit5的支持,并回滚到使用JUnit5控制台进行两个测试。 除了之外,如何在其他任务上启用Gradle4.6

  • 我想在同一个项目中运行spock和junit5测试。因此,我制作了一个示例项目,在src/main下没有任何内容,但在src/test/java/a/package/下有两个测试。其中一个测试是junit5,另一个是spock测试。 但是在发出之后,只执行JUnit测试,而不执行spock测试。它们通过“运行所有测试”在Intellij中很好地一起运行,所以显然有一些我找不到的配置问题。 下面是我

  • 现在我们有一个项目,包含两个工作。1) 是带有单元测试的标准构建。2) 是集成测试。它们是这样工作的: 构建整个项目,运行单元测试,启动集成测试工作 问题是步骤2)现在需要一个多小时才能运行,我想将集成测试并行化,以便它们花费更少的时间。但我不确定我该怎么做。我的第一个想法是,我可以有两个这样的步骤: 构建整个项目,运行单元测试,启动集成测试工作 构建整个项目,将其部署到integration s

  • 我正在进行集成测试,但由于某些原因,maven failsafe插件没有运行。下面是用于集成测试的概要文件。测试类的名称是AppSmokeTest。java@测试正在用于测试。 我看过多篇关于这个问题的帖子 我试着在build标签中运行插件。 我尝试添加 我也尝试过运行maven failsafe插件2.18.1版,因为我看到有人认为它对他们有用。

  • 我有几个繁重的Spring集成测试(是的,这不是最好的方法,我没有时间正确地模拟所有外部dep) 下面是测试的典型注释 由于以下原因,测试会定期失败: 这里有两个问题:1、让测试共存的正确方式是什么?我在surefire插件中设置了forkCount=0。好像有帮助 2.1. 在每次测试期间,我实际上不需要启动所有的

  • 我遇到了无法使用Maven运行JUnit5测试的问题。在IDE中运行它们工作正常,但使用“mvn测试”会产生以下输出: 这是我的测试课程: pom: 我做了一些研究,我认为这可能与混合JUnit4和JUnit5特性有关,这导致maven surefire插件无法运行测试。然而,我找不到那些剩余的JUnit4特性可能在哪里。我将感谢任何帮助。