Pan*_*ood 13 java maven maven-failsafe-plugin junit5
Mail Failsafe插件在我运行命令时找不到我的JUnit 5集成测试mvn clean failsafe:integration-test,尽管它可以找到文件.
我有junit-jupiter-api和junit-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>
Run Code Online (Sandbox Code Playgroud)
我的集成测试是正确命名(下面的**/*IT.java,**/IT*.java或者**/*ITCase.java,其中包括由故障安全默认值,由神火排除默认情况下).
有什么办法可以在Failsafe中使用JUnit 5测试吗?
Pan*_*ood 14
编辑:这个答案之前是正确的maven-failsafe-plugin:2.22.0.请参阅davidxxx对理想和最新解决方案的回答.
在maven-failsafe-plugin目前不支持JUnit的5,开箱即用.
但是,与之一样maven-surefire-plugin,您可以maven-failsafe-plugin通过指定org.junit.platform:junit-platform-surefire-provider:1.0.1与早期版本的依赖关系来运行JUnit 5测试maven-failsafe-plugin:2.19.1.
它不具有故障保护的当前版本2.20(在该神火有错误的方式相同)由于工作的OutOfMemory错误.
有关插件配置的示例,请参阅下面的内容:
<properties>
<junit.platform.version>1.0.1</junit.platform.version>
</properties>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>${junit.platform.version}</version>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
你可以在GitHub上找到这个工作的完整例子(和一个失败的例子).要测试它是否有效,您可以运行mvn clean failsafe:integration-test.
请注意,从JUnit 5文档开始:junit-platform-surefire-provider不应再使用:
由于神火释放
2.22.0时,junit-platform-surefire-provider从JUnit的团队已被弃用,并将在JUnit平台的后续版本中停止使用。
此外,您还可以阅读maven-surefire-plugin文档:
使用JUnit 5平台
要开始使用JUnit Platform,您需要至少
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>
Run Code Online (Sandbox Code Playgroud)
而maven-failsafe-plugin声明可能是那样简单:
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)