如何使用Maven Failsafe插件运行JUnit 5集成测试?
当我运行命令mvn clean failsafe:integration-test
,Mail Failsafe插件将找不到我的JUnit 5集成测试,尽管它可以找到文件。
我有junit-jupiter-api
和junit-jupiter-engine
作为测试依赖项:
5.0.1 org.junit.jupiter junit-jupiter-api ${junit.jupiter.version} test org.junit.jupiter junit-jupiter-engine ${junit.jupiter.version} test
我的集成测试正确命名(遵循**/*IT.java
, **/IT*.java
或默认包含在Failsafe中的**/*ITCase.java
,默认情况下由Surefire排除)。
有什么方法可以使用Failsafe进行JUnit 5测试吗?
请注意,从JUnit 5文档中 :不应再使用junit-platform-surefire-provider
:
由于Surefire
2.22.0
的发布,JUnit团队的junit-platform-surefire-provider
2.22.0
junit-platform-surefire-provider
已被弃用,并将在JUnit平台的后续版本中停止使用。
此外,您还可以阅读maven-surefire-plugin
文档 :
使用JUnit 5平台
要开始使用JUnit Platform,您需要在项目中添加至少一个
TestEngine
实现。 例如,如果要使用Jupiter编写测试,请将测试工件junit-jupiter-engine
到POM中的依赖项
所以你必须指定这个test
依赖:
5.2.0 [...] org.junit.jupiter junit-jupiter-engine ${junit-jupiter.version} test [...]
而maven-failsafe-plugin
声明可以像下面这样简单:
maven-failsafe-plugin 2.22.0
编辑:这个答案在maven-failsafe-plugin:2.22.0
之前是正确的maven-failsafe-plugin:2.22.0
。 请参阅davidxxx对理想和最新解决方案的回答 。
maven-failsafe-plugin
目前不支持开箱即用的JUnit 5 。
但是, 与maven-surefire-plugin
,您可以使用maven-failsafe-plugin
运行JUnit 5测试,方法是指定org.junit.platform:junit-platform-surefire-provider:1.0.1
与早期版本的依赖关系maven-failsafe-plugin:2.19.1
。
由于OutOfMemory
错误,它不能用于故障安全的当前版本2.20(与surefire有错误的方式相同)。
有关插件配置的示例,请参阅下面的内容:
1.0.1 maven-failsafe-plugin 2.19.1 org.junit.platform junit-platform-surefire-provider ${junit.platform.version}
你可以在GitHub上找到这个工作的完整例子(和一个失败的例子) 。 要测试它是否有效,您可以运行mvn clean failsafe:integration-test
。
- 将绝对文件路径从java代码传递给xslt document()
- “方法对于类型是不明确的”但类型不是模糊的(错误来自从Eclipse 3.7.2升级到eclipse 4.2)
- 哪个是.net / java中集体智能的优秀开源库?
- 在生产环境中使用HSQLDB
- Tomcat 8 getOpenSessions()没有为终点返回所有会话?
- 如何让JToolBars包装到下一行(FlowLayout)而不将它们隐藏在它们下方的JPanel中?
- 为什么Java Pattern类使用工厂方法而不是构造函数?
- 什么是给jvm的线程堆栈大小选项(-Xss)? 为什么Windows PC中至少有68k的限制?
- 在JDK 1.6中,String equals操作可以替换为==吗?