Я пытаюсь сохранить свой тест, связанный с выходом из системы, в одном классе. Я ожидаю, что смогу вызывать их по мере необходимости в процессе тестирования, используя тег метода include в testng xml.
Все было хорошо, пока я не добавил метод выхода из того же класса. Теперь testng выполняет только первое средство, означает запуск launchapp.
<suite name="Temp Test Suite" parallel="false">
<test name="Temp Test">
<classes preserve-order="true">
<class name="commonTest.testclass.LaunchApp"/>
<class name="commonTest.testclass.Login">
<methods>
<include name="normalLogin" />
</methods>
</class>
<class name="SmokeTest.testclass.Order" />
<class name="SmokeTest.testclass.Checkout" />
<class name="commonTest.testclass.Login">
<methods>
<include name="logout" />
</methods>
</class>
<class name="commonTest.testclass.Login">
<methods>
<include name="adminLogin" />
</methods>
</class>
<class name="SmokeTest.testclass.Order" />
<class name="commonTest.testclass.Login">
<methods>
<include name="logout" />
</methods>
</class>
</classes>
</test>
Вот как выглядит реальный класс (я удалил вещи по понятным причинам)
public class Login extends BaseTest
{
@BeforeClass
private void beforeClass()
{
//does before stuff
}
@Test
public void normalLogin()
{
//login
loginPage.doLogin(Data.get("Login"), Data.get("Password"));
loginPage.clickOkButton();
//check if dashboard page is opened
Assert.assertTrue(commonPage.isVisible());
}
@Test
public void adminLogin()
{
//login
loginPage.doLogin(Data.get("Login"), Data.get("Password"));
loginPage.clickOkButton();
//check if dashboard page is opened
Assert.assertTrue(commonPage.isVisible());
}
@Test
public void logout()
{
//login
loginPage.doLogout();
Assert.assertTrue(loginPage.isVisible());
}
@AfterMethod
public void afterMethod(ITestResult result)
{
//does after stuff
}
}