Выполнить шаг Cucumber до / после определенной функции
Я хочу указать определенные настройки и снести шаги для каждого конкретного файла функций. Я видел крючки, которые позволяют выполнять код перед каждым сценарием, и крючки для выполнения кода перед каждой функцией, но я хочу указать код для запуска один раз до и после выполнения всех сценариев для одной конкретной функции.
это возможно?
4 ответов
вы используете огурец-jvm? Я нашел статью, которая соответствует вашим требованиям.
http://zsoltfabok.com/blog/2012/09/cucumber-jvm-hooks/
в принципе, не используйте JUnit @BeforeClass и @AfterClass для этого, поскольку они не знают о тегах Cucumber Hook. Вы хотите, чтобы методы Init и Teardown запускались только для определенных сценариев?
это если вы используете junit для запуска тестов. Мы используем аннотации для создания класса модульного теста и отдельного класса шагов. Стандартный @Before материал входит в класс steps, но аннотацию @BeforeClass можно использовать в основном классе модульного теста:
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"json", "<the report file"},
features = {"<the feature file>"},
strict = false,
glue = {"<package with steps classes"})
public class SomeTestIT {
@BeforeClass
public static void setUp(){
...
}
@AfterClass
public static void tearDown(){
...
}
}
попробуйте это :
в файле :
@tagToIdentifyThatBeginAfterShouldRunForThisFeatureOnly
Feature : My new feature ....
В Stepdefinitions.java :
@Before("@tagToIdentifyThatBeginAfterShouldRunForThisFeatureOnly")
public void testStart() throws Throwable {
}
@After("@tagToIdentifyThatBeginAfterShouldRunForThisFeatureOnly")
public void testStart() throws Throwable {
}
вы можете использовать somefeaturefile.функция
фон: Учитывая, что у меня есть яблоко
сценарий: есть яблоко Когда я ем яблоко Тогда мой живот должен вырасти
здесь действие написано в фоновом режиме будет выполняться перед каждым сценарием.