У нас есть какая-нибудь аннотация в огурце, где он будет запускаться перед любым тестом в файле возможностей?
Метод @Before будет выполняться перед каждым сценарием. Есть ли у нас аннотация, где он запускается перед любым сценарием, и аннотация после того, как все сценарии были выполнены?
2 ответа
Вы можете использовать gerkin с qaf, где вы можете использовать различные слушатели TestNG и аннотации. В дополнение к этому, если вы используете webdriver, вы можете получить дополнительную поддержку драйверов и слушателей элементов. Например
package my.test.pkg
public class MyClass{
@BeforeSuite
public void beforeSuite() {
//get executed before suite
}
@BeforeTest
public void beforeTest() {
//get executed before each xml test
}
@BeforeMethod
public void beforeMethod() {
//get executed before each test case/scenario
}
@BeforeGroups(["p1","p2"])
public void beforeMethod() {
//get executed before group
}
//same for after methods @afterXXXXX
}
Вам нужно добавить класс в конфигурационном файле:
<test name="Gherkin-QAF-Test">
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
<class name="my.test.pkg.Myclass" />
</classes>
</test>
Этот пример не использует слушателей. Вы также можете использовать разных слушателей.
Как указано в комментариях, огурец не имеет готового решения для этого.
Но вы можете создать ловушку before для запуска только один раз, используя статический флаг.
private static boolean skipFlag = false;
@Before
public void beforeHook() {
if(!skipFlag) {
do stuff
skipFlag=true;
}
}
Изменить Before
крюк для запуска для определенных тегов и т.д..
После крюка в конце сложно работать. Либо специально создайте сценарий, либо заключительный шаг в конце, в котором выполняются все действия после хуков. Или вы можете написать код в хуке выключения JVM, хотя он будет работать после запуска всех файлов функций.