Аналогично Как я могу заставить мои тесты JUnit запускаться в случайном порядке? , я бы хотел, чтобы TestNG запускал мои тесты в случайном порядке, чтобы непредвиденные зависимости не могли закрасться.
В руководстве TestNG указано :
По умолчанию TestNG будет запускать тесты, найденные в файле testng.xml в
случайный порядок.
Однако я создал небольшой тестовый проект с простым testng.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="My suite">
<test name="Simple test">
<packages>
<package name="testngtests"></package>
</packages>
</test>
</suite>
Пакет testngtests
содержит два тестовых класса (MyTest1, MyTest2), и они содержат несколько пустых методов, таких как:
@Test
public void testOne(){
}
Все тестовые методы пусты и отличаются только по имени.
Когда я запускаю их (используя Eclipse TestNG runner или в командной строке), тесты последовательно выполняются в одном и том же порядке (а именно, сортируются в алфавитном порядке, сначала по классу, а затем по имени метода).
Так что документация не так?
Или «в случайном порядке» означает «нет гарантированного порядка»? Тогда как я могу заставить TestNG активно рандомизировать порядок тестирования?