web-dev-qa-db-ja.com

機能を削除せずに、specflow(Gherkin)の機能を無効にするにはどうすればよいですか?

いくつかのSpecFlow機能(Gherkin構文を使用)があり、テストの実行を防ぐために一時的に機能を無効にしたいですか?

これを行うために機能をマークできる属性はありますか? Cucumberで動作するものがSpecFlowでも動作する可能性があると思います。

62
Simon Keep

@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'
94
jbandi

Specflowの最新バージョンでは、次のようにタグに理由を指定する必要があります。

@ignore("reason for ignoring")

編集:何らかの理由でスペースで壊れますが、これは機能します:

@ignore("reason")
11
Xena

Jbandiが示唆するように、@ ignoreタグを使用できます。

タグは次のものに適用できます。

  • 単一のシナリオ
  • フル機能

NUnitをテストプロバイダーとして指定すると、生成されたコードの結果は、

[NUnit.Framework.IgnoreAttribute()]

メソッドまたはクラスに。

2
Be.St.
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」テキストは、「cuitmberOptions(タグ)」および「junittestone」クラスファイルに記載されていることです。また、プロジェクトで利用可能なキュウリ、ガーキン、Junitおよびその他のjarの両方に関連するすべてのjarファイルがあり、ステップ定義(クラス)にインポートしていることを確認してください。

「無視」されているため、テストの実行中にシナリオはスキップされます。

2
MKod