有没有办法我有条件地跳过Cucumber java中的场景?

时间:2016-09-08 12:59:17

标签: java cucumber bdd

有没有办法我有条件地跳过Cucumber java中的场景?

在下面的图片中,我想跳过在新闻稿部分没有数据时为数据检查而编写的场景。

我计划首先检查没有可用的数据方案,如果成功执行则跳过其余的方案。

When No Data is Available

When Data is Available

添加功能文件以获得更多的合法性:

背景:     给出主页页面     当我导航到“XYZ”菜单时     然后应显示“新闻稿”部分

@News    
And "Press release" section should I check for No data present

@News 
And "Press release" section should feature "latest News" portion 
And "Press release" section having "abc" link for pagination

@News
And in "Press release" section click on news link 
Then news details should be displayed

在上面的文件中,     如果@News
    我应该检查“新闻发布”部分是否存在数据

返回正结果,然后我的其他方案应该加入标记@News,而不是在每个场景中检查相同的条件。

1 个答案:

答案 0 :(得分:0)

如果您使用QAF-Gherkin,则可以使用step listener来执行此操作。例如,在步骤失败时,将AutomationError的原始异常扭曲,您的场景将被跳过而不是失败。您还可以设置step-meta-data并在侦听器中使用它。这是代码示例:

    //This will called on step failure
    @Override
    public void onFailure(StepExecutionTracker stepExecutionTracker) {
        TestStep step = stepExecutionTracker.getStep();
        String myCustomMetaDataVal = (String) step.getMetaData().get("my-custom-meta-data");
        if ("somevlaue".equalsIgnoreCase(myCustomMetaDataVal)) {
            Throwable originalThrowable = stepExecutionTracker.getException();
            stepExecutionTracker.setException(new AutomationError("meaningful message", originalThrowable));
        }
    }