我正在尝试将与登录注销相关的测试保留在单个班级中。我希望能够在测试流程中使用 testng xml 中的 include 方法标记在需要时调用它们。
一切都很好,直到我从同一个班级添加注销方法。现在 testng 只执行首先意味着仅启动应用程序测试。
<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
}
}