我有一个包含JUnit 4和JUnit 5测试的Maven项目。
我使用的是3.0.0-M07
版本的Maven Surefire插件。在Maven依赖关系树中可以找到以下相关依赖关系(我使用mvn dependency:tree
进行了检查):
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条答案
按热度按时间s5a0g9ez1#
通过使用
junit-jupiter-api
maven-surefire-plugin/maven-failsafe-plugin,可以自动加载junit-vintage-engine
并执行基于JUnit 4的测试。正确的方法是使用
junit-jupiter-engine
而不是junit-jupiter-api
。详细说明可here获得。