如何在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时将跳过该场景。