黄瓜Java快速失败

时间:2018-04-13 20:22:48

标签: java cucumber

我们正在使用基于Java的Cucumber项目。

想知道是否有快速失败选项。 如果我正在运行10个场景&如果第二次测试失败,我的测试应该在第二次测试后停止。

static boolean prevScenarioFailed = false;
  @Before
    public void teardown(Scenario scenario) throws Exception {
        prevScenarioFailed = scenario.isFailed();
        if(env.getProperty("fail_fast").toString().equalsIgnoreCase( "true")) {
            if (prevScenarioFailed) {

                throw new RuntimeException("Fail!");
            }

        }
    }

1 个答案:

答案 0 :(得分:2)

我假设跑步者在 junit

案例1 - 在特定方案失败后跳过所有方案。

在功能文件中要在失败时快速失败的方案中使用类似(@SkipCheck)的特定标记。

stepdefinition or hook class

中添加以下内容
    private static boolean skipFlag = false;

    @Before
    public void beforeSkipCount() {
        if(skipFlag)
            Assume.assumeTrue(false);
    }

    @After
    public void afterSkipCount(Scenario scen) {
        if(scen.getSourceTagNames().contains("@SkipCheck") && scen.isFailed())
            skipFlag = true;
    }

案例2 - 在特定情景计数失败后跳过所有方案。

private static int skipCount = 0;
private static final int ALLOWED_FAIL_TEST_COUNT = 2;

@Before
public void beforeSkipCount() {
    if(skipCount == ALLOWED_FAIL_TEST_COUNT)
        Assume.assumeTrue(false);
}

@After
public void afterSkipCount(Scenario scen) {
    if(scen.isFailed())
        skipCount++;
}

如果项目中有多个运行程序并且想要跳过其中的方案,则需要将Before挂钩的内容复制到junit BeforeClass挂钩。相应地更改标志的访问权限。