Отладка игнорируемых тестов в testng? - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть Java-проект maven в сообществе Intellij IDEA.Версия TestNg очень старая, т.е. 6.9.5, и я просто не могу ее обновить.У меня есть 6 тестовых методов TestNg в классе.Только 5/6 из этих методов используют методы поставщика данных, все из которых находятся в одном классе DataProvider.

Когда я запускаю тестовый класс, успешно выполняется только метод без поставщика данных (скажем, test_5).Остальные помечены как «тест игнорируется».Более того, когда я комментирую или отключаю test_5, запускаются все остальные тесты.Могу ли я заставить testng указать подробную причину игнорирования тестов?

Вот краткая информация о моем проекте.Я не могу дать полный код.

public class MyUtilityClass {
 public class MyUtilityClass(){
  //Load data from property files and initialize members, do other stuff.
 }
}

public class BaseTest {
 MyUtilityClass utilObj = new MyUtilityClass();
 //do something with utilObj, provide common annotated methods for tests etc.
}

public class TestClass extends BaseTest {
 @BeforeClass
 public void beforeMyClass(){
  //Get some data from this.utilObj and do other things also.
 }

 @Test(dataProvider = "test_1", dataProviderClass = MyDataProvider.class)
 test_1(){}

 @Test(dataProvider = "test_2", dataProviderClass = MyDataProvider.class)
 test_2(){}
...
 //test_5 was the only one without data provider.
 test_5(){}
 @Test(dataProvider = "test_6", dataProviderClass = MyDataProvider.class)
 test_6(){}
}

public class MyDataProvider {
 MyUtilityClass utilObj = new MyUtilityClass();
 //do something with utilObj besides other things.
}

Ответы [ 2 ]

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

Я решил свою проблему.Test_5 - единственный метод тестирования, у которого нет поставщика данных.Итак, я предоставил для этого метод фиктивного поставщика данных.

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

Ваши тесты должны заканчиваться точно в той же среде, в которой они были запущены.

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

Если тесты идут в базу данных, попробуйте заключить весь тест в транзакцию, которую вы возвращаете в концетеста.Если вы не можете сделать это, попробуйте смоделировать базу данных.

Если это не БД, поищите где-нибудь внутреннюю статику: либо одноэлементный шаблон, либо статическую коллекцию, содержащуюся в объекте.Совершенствуйте эту штуку прямо из своего дизайна, и с вами все будет в порядке.

Я мог бы дать вам более конкретные советы с кодом, но как есть - это все, что я могу вам сказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...