Я создаю тестовую среду для проекта с несколькими модулями. В настоящее время у меня есть два теста в моем testng.xml.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<listeners>
<listener class-name = "listener-class" />
</listeners>
<test thread-count="5" name="frontEnd">
<parameter name="URL" value="front-end-url" />
<classes>
<class name="frontendTestRunner"/>
</classes>
</test>
<test thread-count="5" name="Backend">
<parameter name="URL" value="back-end-url" />
<classes>
<class name="backendtestrunner"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
Для обоих этих тестов условия до и после отличаются.
Есть ли способ, с помощью которого методы @BeforeTest и @AfterTest можно запускать только для одного теста, скажем, «frontEnd» и различных методов @BeforeTest и @AfterTest для второго - «Backend».
В настоящее время я использую два разных тестера огурцов для достижения этой цели. Но я хочу сделать это, используя только один testrunner.
Вот мои два TestRunner:
@CucumberOptions(
features = "src/test/java/com/frontEnd",
glue = "com/stepDefinitions/frontEnd",
tags = {"~@ignore"}
)
public class FrontEndTestRunner extends AbstractTestNGCucumberTests {
@Parameters( {"URL"})
@BeforeTest
public static void setup(String url) throws IOException {
TestConfiguration.initialise(true);
Pages.initialise();
TestConfiguration.getHomePageUrl(url);
}
/**
* This class runs after the completion of the final test. It populates the reports and closes the browser driver.
*/
@AfterTest
public static void after() {
Browser.close();
}
}
И
@CucumberOptions(
features = "src/test/java/com/backEnd",
glue = "com/stepDefinitions/backEnd"
)
public class BackEndTestRunner extends AbstractTestNGCucumberTests {
@BeforeTest
public static void setup() throws IOException {
TestConfiguration.initialise(true);
Pages.initialise();
}
/**
* This class runs after the completion of the final test. It logs the user out and closes the browser driver.
*/
@AfterTest
public static void after() {
Browser.close();
}
}
Есть ли способ, которым я могу толькоодин TestRunner и каким-то образом все еще в состоянии выполнить правильные условия Begin и After для двух наборов функций?
В основном мне нужно иметь возможность группировать два набора функций и вызывать два разных метода @BeforeTest и @AfterTest в зависимости отк какой группе принадлежит функция.