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



我想使用maven执行Karate测试,并将标记动态传递给执行。我使用的是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 {
}

使用这种方法,我可以动态地将标记传递给执行,但如果karte测试失败,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构建的失败?

你很可能遇到了这个bug:空手道0.9.5:Can';t在并行执行中获取命令行选项

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

最新更新