黄瓜:如何跳过后续步骤并退出场景而又不使步骤/场景失败?

时间:2018-07-31 14:19:01

标签: c# cucumber gherkin

我在Cucumber中拥有我的特征文件,并且正在使用Given,When,Then(Gherkin)语法在其中编写我的方案,并在“步骤定义”文件中具有相应的步骤。 我有一个场景,我要检查是否存在特定的数据集(这是我的Given步骤的一部分),然后继续执行“ Then”,“ And”等的下一步 但是,如果不是这样,则应跳过其余步骤,并退出步骤定义文件,而不会使场景失败。 有人可以建议黄瓜是否支持此功能吗?如果可以,什么是最好的方法?

2 个答案:

答案 0 :(得分:0)

很简单,将您的代码行放在try-catch块中,并确保catch块中没有断言。

答案 1 :(得分:0)

如果特定假设失败,则可以使用JUnits Assume或TestNG的SkipException将测试标记为已跳过。跳过测试不视为失败。

来自https://github.com/cucumber/cucumber-jvm/tree/master/junit

  

通过Assume JUnit提供:

     
    

一组有用的方法,用于陈述有关测试有意义的条件的假设。失败的假设并不意味着代码已损坏,但是测试没有提供有用的信息。默认的JUnit运行器将跳过带有失败假设的测试。自定义跑步者的行为可能有所不同。

  
     

黄瓜运行器支持Assume,并将已跳过的方案标记为已跳过。

来自https://github.com/cucumber/cucumber-jvm/tree/master/testng

  

黄瓜对SkipException的支持有限。

     
      
  • 引发SkipException会导致Cucumber和TestNG将测试标记为已跳过。
  •   
  • 抛出SkipException的子类会导致Cucumber将测试标记为失败,将TestNG标记为跳过。
  •