71

我有一些 SpecFlow 功能(使用 Gherkin 语法),我想暂时禁用该功能以阻止其测试运行?

有没有我可以标记功能的属性来做到这一点?我猜测适用于 Cucumber 的东西也可能适用于 SpecFlow。

4

4 回答 4

106

您可以使用标签@ignore 标记该功能:

@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'
于 2010-06-03T14:07:41.303 回答
14

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

@ignore("reason for ignoring")

编辑:由于某种原因,它与空格分开,但这有效:

@ignore("reason")
于 2016-05-04T21:03:21.350 回答
2

正如 jbandi 建议的那样,您可以使用 @ignore 标记。

标签可应用于:

  • 单一场景
  • 一个完整的功能

给定 NUnit 作为测试提供者,生成代码的结果是插入

[NUnit.Framework.IgnoreAttribute()]

到方法或类。

于 2013-10-18T12:15:38.430 回答
1
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     |

将以上内容视为功能文件“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);
   }

  }

此处需要注意的重要一点是,功能文件中的“@ignored”文本在 CucumberOptions(标签)和“junittestone”类文件中提到。此外,请确保您的项目中具有黄瓜、小黄瓜、Junit 和其他可用 jar 的所有相关 jar 文件,并且您已将它们导入到您的步骤定义(类)中。

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

于 2017-06-01T15:55:35.110 回答