Неисполненные методы испытаний в TestNG 6.12+ - PullRequest
0 голосов
/ 05 июня 2018

У меня есть тестовые классы с набором XML следующим образом:

Class1:

public class TestReal1 {

    @Test
    public void testMethodClass1A_prio0() {
        // some testing code
    }

    @Test(priority = 10)
    public void testMethodClass1B_prio10() {
        // some testing code        
    }

    @Test(priority = 11)
    public void testMethodClass1C_prio11() {
        // some testing code
    }
}

Class2:

public class TestReal2 {

    @Test(priority = 1)
    public void testMethodClass2A_prio1() {
        // some testing code
    }

    @Test(priority = 2)
    public void testMethodClass2B_prio2() {
        // some testing code
    }

    @Test(priority = 3)
    public void testMethodClass2C_prio3() {
        // some testing code
    }
}

TestSuite.xml:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
    <test name="Test" preserve-order="true" verbose="10">
        <classes>
            <class name="com.test.radek.testngtest.TestReal1" />
            <class name="com.test.radek.testngtest.TestReal2" />
        </classes>
    </test>
</suite>

При такой конфигурации для TestNG 6.12+ выполняются только два метода .Вывод TestNG:

===== Invoked methods
    TestReal1.testMethodClass1A_prio0()[pri:0, instance:com.test.radek.testngtest.TestReal1@54e156e1] 1424053985
    TestReal2.testMethodClass2A_prio1()[pri:1, instance:com.test.radek.testngtest.TestReal2@5a311ade] 1513167582
=====

В старых версиях были выполнены все методы.Например, TestNG 6.10:

===== Invoked methods
    TestReal1.testMethodClass1A_prio0()[pri:0, instance:com.test.radek.testngtest.TestReal1@7adbe76f] 2061231983
    TestReal2.testMethodClass2A_prio1()[pri:1, instance:com.test.radek.testngtest.TestReal2@d029f4] 13642228
    TestReal2.testMethodClass2B_prio2()[pri:2, instance:com.test.radek.testngtest.TestReal2@d029f4] 13642228
    TestReal2.testMethodClass2C_prio3()[pri:3, instance:com.test.radek.testngtest.TestReal2@d029f4] 13642228
    TestReal1.testMethodClass1B_prio10()[pri:10, instance:com.test.radek.testngtest.TestReal1@7adbe76f] 2061231983
    TestReal1.testMethodClass1C_prio11()[pri:11, instance:com.test.radek.testngtest.TestReal1@7adbe76f] 2061231983
=====

Я думаю, это как-то связано с реализацией важности атрибута @Test, представленной в 6.10:

Иерархия функций порядка (от менее важных доболее важно): groupByInstance, preserveOrder, priority, depenOnGroups, disabledOnMethods

Но вопрос в том, что в моем случае при использовании версий TestNG версии 6.12+ некоторые тесты не выполняются?Если да, то почему?Это связано с изменениями в DynamicGraph в реализации TestNG?

Какое теперь правильное поведение?

1 Ответ

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

Основной причиной проблемы является то, что в xml-файле вашего комплекта тестовые классы включены в неправильном порядке.

  • TestReal1 имеет методы с более низким приоритетом (приоритеты 0, 10 и11) и этот класс отображается как первый в файле комплекта.
  • TestReal2 имеет методы с более высоким приоритетом (приоритеты 1, 2 и 3), и этот класс отображается как второй в файле комплекта.

Это вызывает путаницу.AFAIK эта проблема была исправлена ​​как побочный эффект некоторых исправлений, которые были сделаны для DynamicGraph и больше не должны быть проблемой в TestNG 7.0.0-SNAPSHOT (скоро будет выпущен как TestNG 7.0.0)

ТакжеОбращаем ваше внимание, что в настоящее время у нас есть проблема с публикацией TestNG 7.0.0-SNAPSHOT в Maven central.

Так что, чтобы исправить это, вы можете попробовать переупорядочить свой класс в вашем xml (или) попробовать с помощью TestNG7.0.0 серия.

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