You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Kotest插件的嵌套Jar扫描?避免执行依赖模块测试

解决IntelliJ Kotest插件执行依赖模块测试类的问题
  • 调整测试运行配置,精准限定测试范围
    打开IntelliJ的「Run/Debug Configurations」,找到针对模块B的Kotest运行配置:

    1. 将「Test kind」设置为「Package」,指定模块B专属的测试包路径(比如com.yourteam.moduleb.test),仅扫描当前模块的测试类。
    2. 切换到「Include/Exclude」标签页,添加排除规则,把模块A的测试包或类全限定名(比如com.yourteam.modulea.test..*)加入排除列表。
  • 全局配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 10:41:05