@test с приоритетом не может выполнить правильный тест, если есть несколько классов - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть файл testng.xml, у меня есть три класса, и у всех трех есть тесты с приоритетом от 1 до 4 (@Test (приоритет = от 1 до 4)).При его запуске сначала запускаются тесты с приоритетом 1 из разных классов, которые влияют на ход моего теста. Какую аннотацию testng я могу использовать, чтобы избежать этого?

@Test(priority=1) в нескольких классах

Ответы [ 2 ]

0 голосов
/ 24 января 2019

В testng порядок классов, упомянутых в testng.xml, не имеет значения, если у вас установлен приоритет в тестах внутри этих классов.Тесты будут выполняться в соответствии с приоритетами (сначала будут выполняться тесты приоритет = 1, а затем приоритет = 2 и далее).

Чтобы решить вышеуказанную проблему, вам нужно удалить приоритеты из тестов внутри классов, а затем поместить классы в testng в том порядке, в котором вы хотите выполнить эти классы, и поместить <preserve-order="true"> в testng xml..

Если вы хотите запустить тесты внутри класса также в определенном порядке, то вы можете использовать dependsOnMethods между тестами, упомянутыми внутри класса, как:

@Test(dependsOnMethods = {"parentTest"})
public void childTest() {       
}

@Test
public void parentTest() {      
}

ВВ приведенном выше случае, когда parentTest () проходит только тогда, childTest () будет выполняться.

0 голосов
/ 28 декабря 2018

use preserve order

 <test name="Test" preserve-order="true">

Так что все классы, указанные в testng.xml, будут выполняться в указанном порядке, а затем в каждом классе методы будут выполняться в соответствии с приоритетом.

...