当前位置: 首页 > 知识库问答 >
问题:

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

弘康安
2023-03-14

我想使用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"

共有1个答案

韩善
2023-03-14

您很可能遇到了以下bug:Karate 0.9.5:无法在并行执行中获取命令行选项

你能用0.9.6.RC3试试并确认一下吗?

 类似资料:
  • 你能帮助我有没有什么方法运行空手道跑者文件与TestNG框架工作。你的答案真的会让我们做出决定。 我经历了各种与空手道相关的测试的帖子。但不幸的是我无法触发我的脚本。 注意:我在代码中扩展了KarateRunner类并使用了@KarateOptions。

  • 我在用空手道0.9。2和格拉德尔。我的项目需要在src/main/java中进行所有空手道测试。因此,我将gradle依赖项配置为“compile”而不是“testCompile”,并修改了sourceset以指向main而不是test。当我使用上述配置运行runner类时,我得到了一条空的测试套件消息。 建筑渐变片段: 此外,我必须从可部署项目jar运行空手道测试。请指出我可以参考的资源来实现同

  • 并将我的文件保存如下: Runner类: 把这个放到我的大楼里。格雷德尔: 但我得到的回应是: 但是,我不能看到我的测试是否通过。我做错了什么? 分级版本:2.14.1

  • 我无法使用CLI执行测试。跑者工作。我正在使用版本0.9.5.rc5和maven命令:“mvn test-f pom.xml exec:java-dexec.mainclass=com.intuit.karate.cli.main-dexec.args='-d'-dexec.classpathscope=test” 以下是错误:ERROR com.intuit.karate-driver conf

  • 我们有一个具有以下结构的多模块项目 模块1 模块2 模块e2e 父pom 模块e2e包含我们的空手道功能(进入src/test/java/features文件夹) 我们不知道如何使用“mvn测试”进行空手道测试。它总是运行0个测试,而不是一些功能文件。 我们尝试从项目的根以及e2e模块内部运行“mvn测试” 我们还有其他maven项目(不是多模块项目),它可以按预期工作。需要进行一些配置操作吗?

  • 我创建了一个测试运行程序,它创建了一个动态的testng xml,这样我就可以运行带有参数的测试。所有@Test方法都在相关类中(例如LoginTest.class)。它在IDE上运行得非常完美,但在Maven(mvn测试)下,它只打印构建成功,而不运行任何测试… POM. xml中的maven-surefire插件: 我的TestRunner课程: 我的LoginTest类: