Почему мой TesNG выполняет только первый тестовый класс? это что-то о вызове одного и того же класса более одного раза? Пожалуйста, смотрите XML - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь сохранить свой тест, связанный с выходом из системы, в одном классе. Я ожидаю, что смогу вызывать их по мере необходимости в процессе тестирования, используя тег метода 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
}
}

1 Ответ

0 голосов
/ 08 марта 2019

Попробуйте следующее:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...