无法仅在 Kotest 中运行显式标记的测试

问题描述 投票:0回答:1

我有一个使用 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 文档中的这种方法

https://kotest.io/docs/5.3/framework/tags.html

kotlin maven junit maven-surefire-plugin kotest
1个回答
0
投票

原因可能是命令行中的系统属性 (

-Dkotest.tags="CustomTest"
) 没有传播到用于测试的分叉 JVM。

文档描述了一种从父 JVM 继承这些属性的方法:

要从父配置继承systemProperties集合,您需要在子pom中的systemProperties节点上指定combine.children =“append”:

  <systemProperties combine.children="append">
      <property>
         [...]
      </property>
   </systemProperties>
© www.soinside.com 2019 - 2024. All rights reserved.