如何在IntelliJ IDEA/Maven中筛选Kotest测试:仅运行*Test用例
Kotest条件评估:Maven与IntelliJ中筛选Test排除IT测试的实现
Maven 实现方式
命令行临时执行
直接在Maven命令中通过系统属性传递Kotest的类名过滤规则,精准匹配后缀:
mvn test -Dkotest.filter.classes.include=.*Test$ -Dkotest.filter.classes.exclude=.*IT$
kotest.filter.classes.include:正则匹配类名以Test结尾的测试类kotest.filter.classes.exclude:排除类名以IT结尾的集成测试类
持久化配置到pom.xml
如果需要固定规则,避免每次输入命令行参数,可在maven-surefire-plugin中配置系统属性:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.2</version> <configuration> <systemPropertyVariables> <kotest.filter.classes.include>.*Test$</kotest.filter.classes.include> <kotest.filter.classes.exclude>.*IT$</kotest.filter.classes.exclude> </systemPropertyVariables> </configuration> </plugin> </plugins> </build>
配置完成后,执行mvn test就会自动应用过滤规则。若需临时运行集成测试,可通过命令行覆盖参数:
mvn test -Dkotest.filter.classes.include=.*IT$ -Dkotest.filter.classes.exclude=.*Test$
IntelliJ IDEA 实现方式
方式1:通过VM参数指定类名过滤
- 打开Run/Debug Configurations(右上角运行按钮下拉菜单 → Edit Configurations)
- 选择或创建Kotest运行配置(若新建,需指定测试范围:类/包/模块)
- 在VM options输入框中添加:
-Dkotest.filter.classes.include=.*Test$ -Dkotest.filter.classes.exclude=.*IT$
- 保存配置后运行,即可仅执行*Test后缀的测试类。
方式2:标签化测试+条件评估(更灵活)
如果已给测试类打标签(比如@Tag("unit")标注Test类,@Tag("integration")标注IT类),可通过标签过滤:
- 方法A:在VM options中设置标签规则:
-Dkotest.tags.include=unit -Dkotest.tags.exclude=integration
- 方法B:直接在Kotest配置的Tags字段中输入
+unit -integration(+表示包含,-表示排除),无需编写VM参数,更直观。
注意:确保IntelliJ已安装并启用Kotest官方插件,否则可能无法识别这些条件评估参数。
内容的提问来源于stack exchange,提问作者Oresztesz
相关产品推荐
相关产品推荐

