为什么我的TesNG只执行第一个测试类?是不是一次多次调用同一个类?请参阅xml

问题描述 投票:0回答:1

我试图在单个类中保持我的登录注销相关测试。我希望能够在testng xml中使用include方法标记测试流时调用它们。

一切都很好,直到我从同一个类添加了logout方法。现在testng只执行第一次意味着只有openschapp测试。

<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
}
}
selenium selenium-webdriver automated-tests testng testng.xml
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>
© www.soinside.com 2019 - 2024. All rights reserved.