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

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

翟默
2023-03-14

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

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

我计划首先检查没有可用数据的场景,如果它成功执行,然后跳过其余的场景。

添加功能文件以获得更多理解:

背景:给定主页显示当我导航到“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
和“新闻稿”部分是否应该检查无数据存在

返回肯定的结果,然后标记@新闻下的其余场景应加上尖峰,而不是在每个场景中检查相同的条件。

共有1个答案

谭建章
2023-03-14

如果您使用QAF-Gherkin,您可以使用步骤侦听器来完成。例如,在步骤失败时,扭曲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));
        }
    }
 类似资料:
  • 我制作一个浏览器只是为了练习我的Java技能,有没有办法让我的地址栏(JTextField)比swing的默认值更大,也更弯曲。这是我的密码。 我想制作一个真正可用的浏览器,就像我想让html及其CSS页面显示一样,我还需要学习什么才能使其工作。

  • 所以我正在做一个需要xml模式的小项目,我对这个模式很不熟悉。 我希望能够设置模式以在两组属性之间进行选择,根据我的研究,这在XSD 1.0中是不可能的,但显然是XSD 1.1的一个特性。 目前我正在使用VisualStudio来完成我的工作,它似乎被困在XSD1.0模式中,这是有意义的,因为XSD1.1显然是一个最新的开发。 我的问题是,是否有一个插件/扩展可以让我在Visual Studio中

  • 目前在我们的自动化框架中,我们需要有一种能力来控制cucumber中场景步骤的执行。 问题详情: 假设我们有以下步骤作为场景的一部分: 检查订单是否存在 创建订单 我想实现的是在步骤1中进行检查,如果系统中存在订单(通过DB Call),只需跳过整个场景并将其标记为通过/跳过。如果已经有一些符合标准,我们不想下订单。 目前我通过放置一个来处理它,如果我从DB获取Id,它会失败断言说ID已经存在。

  • 问题内容: 我在实现Runnable的类中的run()中调用的方法被设计为引发异常。 但是Java编译器不允许我这样做,建议我用try / catch包围它。 问题是,通过用try / catch包围它,我使 特定的 run()无效了。我 确实 想抛出该异常。 如果我指定的run()的本身,编译器会抱怨说。 通常,我对run()不会抛出异常完全满意 。但是,在我必须具有该功能的特殊情况下。 如何解

  • 更新: 谢谢所有的帮助。我将总结一下答案。 从@Jayde开始,他的回答成功地将结果减少到0.09秒,并且与限制中的数字成线性关系。 选择*from(选择table1.id作为table1\u id,从table1中选择table1.id 在@Rick James中,他提到这可能是表2的问题。因为我的表2只有几列,所以我可以省略它,自己进行连接,即使是在客户端! 所以我去掉了表2,它只有0.02s

  • 我在Mac上使用Visual Studio代码来处理Node.js应用程序。 有没有办法让Visual Studio Code将EJS文件识别为超文本标记语言?我在用户首选项中没有看到任何文件/方案关联。