如何在specflow(小黄瓜)中禁用某个function而不删除该function?

我有一些SpecFlowfunction(使用小黄瓜语法),我想暂时禁用该function,以防止其运行testing?

是否有一个属性,我可以标记function来做到这一点? 我猜测,与黄瓜一起工作的东西可能也适用于SpecFlow。

您可以使用标记@ignore标记该function:

@ignore @web Scenario: Title should be matched When I perform a simple search on 'Domain' Then the book list should exactly contain book 'Domain Driven Design' 

在最近的Specflow版本中,您现在还必须提供标签的原因,如下所示:

 @ignore("reason for ignoring") 

编辑:出于某种原因,它与空间打破,但这个工程:

 @ignore("reason") 

由于jbandibuild议你可以使用@ignore标签。

标签可以应用于:

  • 一个情景
  • 一个完整的function

将NUnit作为testing提供者,生成代码的结果就是插入

[NUnit.Framework.IgnoreAttribute()]

到方法或者类。

 Feature: CheckSample @ignored Scenario Outline: check ABC #checkout.feature:2 Given I open the applciation When I enter username as "<username>" And I enter password as "<password>" Then I enter title as "<title>" Examples: | username | password | | dude | daad | 

考虑上面的function文件“CheckSample.feature”

下面是你的步骤文件,它只是部分文件:

 public class Sampletest { @Given("^I open the applciation$") public void i_open_the_applciation() throws Throwable { // Write code here that turns the phrase above into concrete actions //throw new PendingException(); } 

现在下面将是亚军文件:

 @RunWith(Cucumber.class) @CucumberOptions( plugin = {"pretty", "html:target/reports", "json:target/reports/cucumber-report.json"}, monochrome = true, tags = {"~@ignored"} ) public class junittestOne { public static void main(String[] args) { JUnitCore junit = new JUnitCore(); Result result = junit.run(junittestOne.class); } } 

这里需要注意的是,function文件中的“@ignored”文本在“junittestone”类文件中的CucumberOptions(标签)中提到。 此外,请确保您的项目中有黄瓜,小黄瓜,Junit和其他jar子的所有相关jar文件,并且已经将它们导入到步骤定义(类)中。

由于“忽略”,在执行testing时将跳过该场景。

    Interesting Posts