如何 运行 使用带有动态标签的 Maven 进行空手道测试

How to run Karate tests using maven with dynamic tags

我想使用 Maven 执行空手道测试并将标签动态传递给执行。我正在使用 junit4,我尝试了两种方法 - 并行和简单的 @RunWith 注释。

@RunWith

package karate;

import com.intuit.karate.KarateOptions;
import com.intuit.karate.junit4.Karate;
import org.junit.runner.RunWith;

@RunWith(Karate.class)
@KarateOptions(features = "classpath:karate")
public class KarateTestIT {
}

使用这种方法,我可以动态地将标签传递给执行,但如果空手道测试失败,maven 构建仍然成功。

平行

package karate;

import com.intuit.karate.Results;
import com.intuit.karate.Runner;
import org.testng.annotations.Test;

import static org.junit.Assert.assertTrue;

public class KarateTestIT {

    @Test
    public void testParallel() {
        Results results = Runner.path("classpath:karate").tags().parallel(5);
        assertTrue(results.getErrorMessages(), results.getFailCount() == 0);
    }
}

如果空手道测试失败,使用并行方法 Maven 构建将失败。但是我无法通过 maven 命令选项将标签传递给测试。

我正在 运行 使用命令进行测试

mvn test -Dkarate.options="--tags @tag"
mvn test -Dkarate.options="--tags ~@tag"

我是不是漏掉了什么?有没有办法在空手道测试失败的情况下同时实现动态标记和 Maven 构建失败?

您很可能 运行 遇到了这个错误:Karate 0.9.5 : Can't get command line options in parallel execution

你能试试 0.9.6.RC3 并确认吗?