Как отключить функцию в specflow (Gherkin) без удаления функции? - PullRequest
62 голосов
/ 03 июня 2010

У меня есть некоторые функции SpecFlow (с использованием синтаксиса Gherkin), и я хотел бы временно отключить эту функцию, чтобы не запускать ее тесты?

Есть ли атрибут, которым я могу пометить функцию, чтобы сделать это? Я предполагаю, что то, что работает с Cucumber, может также работать со SpecFlow.

Ответы [ 4 ]

94 голосов
/ 03 июня 2010

Вы можете пометить объект тегом @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'
11 голосов
/ 05 мая 2016

В последней версии Specflow вы также должны указать причину с помощью тега, например:

@ignore("reason for ignoring")

РЕДАКТИРОВАТЬ: По какой-то причине это разрыв с пробелами, но это работает:

@ignore("reason")
2 голосов
/ 01 июня 2017
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". Кроме того, убедитесь, что у вас есть все соответствующие файлы jar для огурцов, корнишонов, Junit и других файлов jar, доступные в вашем проекте, и вы импортировали их в определения шагов (класс).

Из-за "игнорирования" сценарий будет пропущен при выполнении тестов.

2 голосов
/ 18 октября 2013

Как предполагает jbandi, вы можете использовать тег @ignore.

Метка может применяться к:

  • Сценарий
  • полная функция

Учитывая NUnit в качестве поставщика теста, результатом в сгенерированный код является вставка

[NUnit.Framework.IgnoreAttribute ()]

к методу или классу.

...