Я включил функцию rerunFailingTestsCount Surefire. Как настроить Jenkins CI для отображения расширенных тестовых данных? - PullRequest
4 голосов
/ 30 января 2020

Я узнал о функции rerunFailingTestsCount в Surefire ( commit ). В случае сбоя теста бегун пытается выполнить его до указанного количества раз. Если какое-либо из этих повторов выполнится успешно, тест считается ПРОЙДЕННЫМ, но НЕПРАВИЛЬНЫМ.

Эта функция реализует расширение формата отчета JUnit XML с дополнительными атрибутами в результате теста.

Как я могу настроить конфигурацию Jenkins CI для показа только что полученных тестовых данных о моем тестировании?

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

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

1 Ответ

2 голосов
/ 09 февраля 2020

Похоже, вы нашли почти все ответы самостоятельно :)

Единственное, чего не хватает в IMO, - это некоторый плагин Jenkins, который действительно может показывать (визуализировать) нестабильные тесты на основе достоверных отчетов.

Существует действительно такой плагин , который называется Flaky Test Handler.

Отказ от ответственности - я не пробовал сам, но, похоже, он справится с работой. И я бы лучше всего решил эту проблему.

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

Еще один подход, который я могу придумать of создает плагин maven, который будет анализировать результаты плагина surefire и создавать дополнительный отчет HTML, и на основе этой информации вы можете просто визуализировать отчет HTML в Jenkins (избегая написания плагина jenkins).

Последний подход, с которым я долго работал go - это плагин maven, который снова анализирует результаты верного теста и добавляет результат в некоторую базу данных (например, mon go db или что-то в этом роде). Он может быть вызван только в Jenkins, чтобы Jenkins предоставил некоторую дополнительную информацию, такую ​​как buildNumber.

Позже вы можете свернуть свой собственный пользовательский интерфейс, вызывая mon go db и предоставляя статистику по сборкам (как в предыдущей сборке было 10). Слабый тест, эта сборка имеет 8 и т. д.).

...