t.me/atinfo_chat Telegram группа по автоматизации тестирования

Перезапуск упавших тестов в TestNG когда сьют состоит из нескольких файлов

Теги: #<Tag:0x00007f0e6a04ac48> #<Tag:0x00007f0e6a04ab30> #<Tag:0x00007f0e6a04a9c8> #<Tag:0x00007f0e6a04a900>

Добрый день. Столкнулся с ситуацией, что когда составляю xml для запуска из других xml файлов, то листенер внутри этих xml файлов не отрабатывает и тесты не перезапускаются при падении. Если запускать напрямую сьют authorisation.xml, то всё отрабатывает корректно.

Встречался ли кто-нибудь с подобной проблемой и есть ли пути решения?

<suite name="Регресс" verbose="1">
    <suite-files>
        <suite-file path="registration.xml"/>
        <suite-file path="authorisation.xml"/>
    </suite-files>
</suite>

Вешать retryAnalyzer = RetryAnalyzer.class В каждый тест не хочу

Вы можете перед запуском тестов, добавить ко всем запускаемым тестам retryAnalyzer:

@BeforeSuite
public void setUpTestsSuite(ITestContext tests_context) {
    for (ITestNGMethod test_method : tests_context.getAllTestMethods()) {
        if (test_method.getRetryAnalyzer() == null) 
			test_method.setRetryAnalyzer(new RetryAnalyzer());
    }
}

Вообще, очень полезно посматривать на методы объектов:
изображение

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

<listeners>
    <listener class-name="RetryListener"/>
</listeners>
<suite name="Регресс" verbose="1">
    <suite-files>
        <suite-file path="registration.xml"/>
        <suite-file path="authorisation.xml"/>
    </suite-files>
</suite>

Так избавьтесь от этой проблемы.

Там дата провайдер на 200 вариантов. Падает один, рестартятся все. Решения пока не нашел

Такие тесты запускать надо в отдельном скопе, с параметром перезапуска - 0, т.е. не перезапускать. Параметр кол-ва перезапусков надо выносить в переменные и передавать его при запуске тестов.

Сейчас так и происходит. Но хотелось единой таской всё пускать. Но видимо решения нет.

Да в принципе, ничего страшного же. Главное запускаются, и работают.