我有一个使用 kotlin 版本 1.7.0 的 Spring Boot 项目。我的 pom 如下所示。
<properties>
<kotlin.version>1.7.0</kotlin.version>
...
</<properties>
<dependencies>
<dependency>
<groupId>io.kotest</groupId>
<artifactId>kotest-runner-junit5-jvm</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
...
</dependencies>
.....
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M6</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
<runOrder>alphabetical</runOrder>
<useUnlimitedThreads>true</useUnlimitedThreads>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<argLine>-Xmx2560m -Dspring.test.context.cache.maxSize=24 --enable-preview ${argLine}</argLine>
</configuration>
</plugin>
我的 kotest 测试类如下所示,
@Tags("CustomTest")
class CustomTestClass : FunSpec({
blah blah
})
当我尝试使用以下命令仅运行标记为 CustomTest 的测试时
./mvnw test -Dkotest.tags="CustomTest"
无论如何,它都会运行项目中的所有测试。谁能帮我调试这个问题吗?
我遵循了 kotest 文档中的这种方法
原因可能是命令行中的系统属性 (
-Dkotest.tags="CustomTest"
) 没有传播到用于测试的分叉 JVM。
文档描述了一种从父 JVM 继承这些属性的方法:
要从父配置继承systemProperties集合,您需要在子pom中的systemProperties节点上指定combine.children =“append”:
<systemProperties combine.children="append">
<property>
[...]
</property>
</systemProperties>