2015-10-30 2 views
0

У меня есть набор тестов следующим образом.Как пропустить методы с использованием @AfterMethod в TestNG

У меня есть еще один тест, который я должен запустить после выполнения каждого из теста. Я надеюсь, что я мог бы сделать это с

@AfterMethod 
public void testA(){ 
} 

Теперь мне нужно пропустить testA для testX. Это означает, что мне не нужен testA для запуска после testX. Как мне это сделать? Также как указать несколько тестовых примеров, чтобы пропустить указанным выше способом?

+0

В зависимости от порядка выполнения испытаний в первую очередь это неправильно. Тесты должны быть автономными. – Danstahr

+0

Это интеграционные тесты. Поэтому я думаю, что порядок имеет значение – DesirePRG

+0

Если вопрос имеет значение, вполне вероятно, что тесты не могут быть развязаны и выполняться индивидуально - в этом случае я думаю, что это более читаемо и менее подвержено ошибкам просто иметь один метод @Test. – Danstahr

ответ

3

Один из способов сделать это - добавить к тому же group любой способ, который вы хотите выполнить testA.

В следующем примере, testY и testZ добавляются к группе "myGroup" поэтому testA после того, как метод, который также принадлежит к этой группе, будет выполняться только для тех тестов.

@Test 
public void testX(){ 
} 

@Test(groups = { "myGroup" }) 
public void testY(){ 
} 

@Test(groups = { "myGroup" }) 
public void testZ(){ 
} 

@AfterMethod(groups = { "myGroup" }) 
public void testA(){ 
} 
+0

Что делать, если уже testX и testZ находятся в двух разных группах? – DesirePRG

+0

@DesirePRG Вы можете добавить новую настраиваемую группу для каждого соответствующего метода. – Tunaki

+0

При добавлении теста аннотации @AfterXNG рассматривает его как тест конфигурации. есть ли способ, который я могу сказать, чтобы это считалось нормальным тестом – DesirePRG

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