У меня есть комплект для тестирования интеграции, работающий на TestNG и использующий его аннотации. В упрощенном случае у меня есть 3 тестовых класса, которые содержат 1 тестовый тест и некоторые зависят от тестов конфигурации.Выполнение тестовых классов гранулярно в TestNG
TestClass1
@Test()
configureTestMethod() {}
@Test(dependsOnMethods=["configureTestMethod"])
testCase1_1() {}
@Test(dependsOnMethods=["configureTestMethod"])
testCase1_2() {}
TestClass2
@Test()
configureTestMethod() {}
@Test(dependsOnMethods=["configureTestMethod"])
testCase2_1() {}
@Test(dependsOnMethods=["configureTestMethod"])
testCase2_2() {}
TestClass3
@Test()
configureTestMethod() {}
@Test(dependsOnMethods=["configureTestMethod"])
testCase3_1() {}
@Test(dependsOnMethods=["configureTestMethod"])
testCase3_2() {}
Моя проблема, когда я бегу все эти 3 тестовые классы, которые он запускает его в следующем порядке: TestClass1.configureTestMethod(), TestClass2.configureTestMethod(), TestClass3.configureTestMethod(), TestClass1.testCase1_1() , TestClass1.testCase1_2(), TestClass2.testCase2_1(), TestClass2.testCase2_2(), ... и т. Д. ...
Я знаю, что имеет смысл, потому что нет никаких зависимостей между configureTestMethod() в разных классах, поэтому для TestNG их порядок не измеряется.
Как я могу запустить все методы тестирования тестовых классов, прежде чем переходить к другому классу тестов?
Направления я обнаружил до сих пор:
Определение зависимостей между configureTestMethod() в различных тестовых классов. Это означает, что я не могу запустить отдельный тестовый класс, потому что он зависит от другого.
Реализация метода перехватчика. Я получаю там три метода configureTestMethod(), и для меня не имеет значения, в каком порядке он выполняется. Сначала я хочу запустить методы класса, поэтому я уверен, как я могу управлять им в перехватчике.
Что делать, если удалить аннотации в зависимостях и аннотировать методы настройки с помощью '@ BeforeClass'? –
Просто попробовал это. Он выполняет все методы @BeforeClass для всех классов в начале. – Soid