2013-11-18 2 views
0

У меня есть комплект для тестирования интеграции, работающий на 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 их порядок не измеряется.

Как я могу запустить все методы тестирования тестовых классов, прежде чем переходить к другому классу тестов?

Направления я обнаружил до сих пор:

  1. Определение зависимостей между configureTestMethod() в различных тестовых классов. Это означает, что я не могу запустить отдельный тестовый класс, потому что он зависит от другого.

  2. Реализация метода перехватчика. Я получаю там три метода configureTestMethod(), и для меня не имеет значения, в каком порядке он выполняется. Сначала я хочу запустить методы класса, поэтому я уверен, как я могу управлять им в перехватчике.

+0

Что делать, если удалить аннотации в зависимостях и аннотировать методы настройки с помощью '@ BeforeClass'? –

+0

Просто попробовал это. Он выполняет все методы @BeforeClass для всех классов в начале. – Soid

ответ

0

Если вы создаете файл test.xml, то по умолчанию все классы тестов, упомянутые в нем, будут работать в том порядке, в котором они упоминаются там. Только то, что вы хотите.

Смежные вопросы