testNG приоритеты и зависимости Конфликт - PullRequest
0 голосов
/ 13 июня 2018

У меня есть 2 класса.1) UpdateCustomerAddress 2) ResetCustomerPassword

UpdateCustomerAddress class is having 5 test methods

@Test(priority = 0)
public void createAddresses() { .... }

@Test(priority = 1, dependsOnMethods ={"createAddresses"})
public void updateAddress()  { ... }

@Test(priority = 2, dependsOnMethods ={"createAddresses"})
public void setDefaultBillingAndShippingAddress()  { ... }

@Test(priority = 3, dependsOnMethods ={"createAddresses"})
public void deleteAddress()  { ... }

@Test(priority = 4, dependsOnMethods ={"createAddresses"})
public void getAddress()  { ... }



 ResetCustomerPassword is having 2 test methods
    @Test()
    public void validPasswordReset(){ ... }

    @Test()
    public void invalidPasswordResetMissingAttribute(){ ... }



 **testng.xml**
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="Suite">
        <test name="Mandatory test suite" preserve-order="true">
            <classes>
                <class name="webservice.customer.UpdateCustomerAddress" />
                <class name="webservice.customer.ResetCustomerPassword" />

            </classes>
        </test> <!-- Test -->

        <test name="Api test">

            <packages>
                <package name="webservice.cms"></package>
                <package name="webservice.catalog"></package>
            </packages>
        </test>

    </suite>

Если я не устанавливаю приоритет для тестов внутри класса ResetCustomerPassword.TestNG выполнит только тест createAddresses в классе UpdateCustomerAddress, а затем пропустит оставшиеся 4 теста и перейдет к ResetCustomerPassword для выполнения 2 тестов.

, если я установлю приоритет выше, чем класс UpdateCustomerAddress, тогда он будет работать нормально.TestNg выполнит 5 тестов в классе UpdateCustomerAddress, а затем выполнит 2 теста в ResetCustomerPassword.

ResetCustomerPassword is having 2 test methods
    @Test(priority = 5)
    public void validPasswordReset(){ ... }

    @Test(priority = 6)
    public void invalidPasswordResetMissingAttribute(){ ... }

Это не идеально, поскольку в будущем это может конфликтовать с другими методами тестирования.

Я пробовалгруппировка 4 тестов зависит от метода createAddresses () в классе UpdateCustomerAddress, но он не работает.

Какая будет идеальная ситуация для преодоления этой проблемы?

1 Ответ

0 голосов
/ 13 июня 2018

Похоже, весь метод теста выполняется для меня с приоритетом и без приоритета.Я просто даю некоторую дополнительную информацию.

priority -> priority will be applied within a class and execution will be happened based on the ascending order rank.

dependsOnMethods --> It specifies the list of methods this method depends on. Dependent Method will be executed first and then corresponding test method will be executed. If the dependent method fails, then actual test method will be skipped.

Если вы хотите выполнить тест в каком-то определенном порядке, тогда используйте приоритет внутри класса (приоритет также можно начинать с 0 в ResetCustomerPassword, и этонет необходимости использовать продолжение приоритета предыдущего класса) иначе, метод Test будет выполняться в некотором случайном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...