问题描述
尝试复现一个用大模型生成测试样例的工作,但使用maven生成的JUnit 5测试样例死活不执行。又不想用命令行运行,因此进行排查
基本知识
<dependencies>
junit-jupiter-api
JUnit 5写代码时调用的库
junit-jupyter-engine
运行JUnit 5测试样例的引擎(TestEngine
)
<plugins>
maven-surefire-plugin
执行 mvn test
时实际执行的插件。它需要一个Provider
来提供测试样例,需要一个TestEngine
的实现来执行测试样例
问题细节与分析
已经正确设置了<dependencies>
,也确认了测试样例的类被正确编译,但就是不执行
分析maven执行轨迹,发现一条:
[INFO] --- surefire:3.3.1:test (default-test) @ tullibee-api ---
[INFO] Using auto detected provider org.apache.maven.surefire.junit4.JUnit4Provider
原来是Provider
出错。不知道为什么,maven-surefire-plugin
自动选择Provider
出错了
解决方法
手动设置Provider
为surefire-junit-platform
。以下为样例:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<includes>
<include>EClientSocket_reqContractDetails_*.java</include>
</includes>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit-platform</artifactId>
<version>3.3.1</version>
</dependency>
</dependencies>
</plugin>