0

我正在尝试将与登录注销相关的测试保留在单个班级中。我希望能够在测试流程中使用 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
}
}
4

1 回答 1

0

尝试以下操作:

<test name="Temp Test">

<classes preserve-order="true">

       <class name="com.aris.client.apiportal.test.web.latest.LaunchApp"/>
       <class name="com.aris.client.apiportal.test.web.latest.loginTest">
             <methods>
                 <include name="normalLogin"/>
                 <include name="logOut"/>
                 <include name="adminLogin"/>
             </methods>
       </class>
</classes>      
</test>
于 2019-03-08T11:20:20.930 回答