如何在Maven中强制PIT使用指定版本的JUnit
PIT 1.6.7 强制使用JUnit 4.12的Maven配置方案
PIT 1.6.7的Maven插件默认携带JUnit 3.8.1传递依赖,优先级高于项目全局依赖,所以会出现版本覆盖问题,按以下步骤配置即可解决:
- 给
pitest-maven插件显式排除JUnit 3.x的传递依赖,同时显式声明JUnit 4.12和对应PIT JUnit 4测试插件依赖 - 在插件配置项中指定
testPlugin为junit4,强制PIT使用JUnit 4的测试执行器
完整配置示例如下:
<build> <plugins> <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> <version>1.6.7</version> <!-- 排除插件默认自带的JUnit 3依赖 --> <exclusions> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> </exclusions> <!-- 显式声明插件要使用的JUnit版本和对应测试适配器 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.pitest</groupId> <artifactId>pitest-junit-plugin</artifactId> <version>1.6.7</version> </dependency> </dependencies> <configuration> <!-- 强制指定使用JUnit4测试执行器 --> <testPlugin>junit4</testPlugin> <!-- 其余你原本的PIT配置(目标类、测试类范围等)保持不变 --> </configuration> </plugin> </plugins> </build>
配置完成后可先执行mvn dependency:resolve-plugins,查看pitest插件的依赖列表,确认没有JUnit 3.8.1引入即可正常执行变异测试。
内容的提问来源于stack exchange,提问作者middle-mood
相关产品推荐
相关产品推荐

