如何禁用Kotest插件的嵌套Jar扫描?避免执行依赖模块测试
解决IntelliJ Kotest插件执行依赖模块测试类的问题
调整测试运行配置,精准限定测试范围
打开IntelliJ的「Run/Debug Configurations」,找到针对模块B的Kotest运行配置:- 将「Test kind」设置为「Package」,指定模块B专属的测试包路径(比如
com.yourteam.moduleb.test),仅扫描当前模块的测试类。 - 切换到「Include/Exclude」标签页,添加排除规则,把模块A的测试包或类全限定名(比如
com.yourteam.modulea.test..*)加入排除列表。
- 将「Test kind」设置为「Package」,指定模块B专属的测试包路径(比如
全局配置Kotest插件的测试发现规则
进入IntelliJ的「Settings → Tools → Kotest」,在测试发现相关设置中添加排除正则表达式,匹配模块A的测试类命名或包路径,例如:^com\.yourteam\.modulea\.test\..*插件会自动忽略符合规则的测试类。
修正模块A的test-jar打包逻辑
在模块A的pom.xml中配置maven-jar-plugin,打包test-jar时排除自身的测试类,确保依赖包中只包含测试工具类:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> <configuration> <excludes> <exclude>**/*Test.kt</exclude> <exclude>**/*Spec.kt</exclude> <!-- Kotest测试类通常以Spec结尾 --> <exclude>**/test/**</exclude> </excludes> </configuration> </execution> </executions> </plugin> </plugins> </build>重新打包模块A后,模块B依赖的test-jar就不会包含测试类,从根源避免插件扫描到。
通过模块维度限定测试执行
右键点击模块B,选择「Run Tests in 'module-b'」,在生成的运行配置中,将「Test kind」设为「Module」,并确认配置仅关联模块B,不包含依赖的模块A。
内容的提问来源于stack exchange,提问作者DamienMiheev
相关产品推荐
相关产品推荐

