Maven - Возможно ли создать точный отчет до истечения времени ожидания? - PullRequest
0 голосов
/ 21 января 2020

У меня есть большой набор тестов, которые выполняются в среде CI / CD. Из-за размера этих тестов и того факта, что некоторые из них могут потерпеть неудачу из-за нестабильности и реальных проблем, я настроил команду maven для повторения всех неудачных тестов дважды. Однако, чтобы снизить затраты, я также установил тайм-аут на конвейере CI / CD, чтобы ни одно задание не могло выполняться в течение установленного промежутка времени (3 часа). В большинстве случаев мой набор тестов завершается примерно через 45 минут. Однако при выполнении моих тестов бывают случаи, когда количество повторных попыток увеличивает время выполнения теста до предела и операция завершается. В этот момент maven не добрался до завершения своего теста, и верный отчет не генерируется. По сути, если тесты выходят за границы конвейерного времени, я не могу знать, какие тесты провалились. Поскольку выполнение этих тестов внезапно завершилось, не похоже, что выполнение mvn surefire-report:report-only сгенерирует отчет.

Моя текущая команда maven выглядит следующим образом:

mvn surefire-report:report -pl :api-integration-tests -Dsurefire.rerunFailingTestsCount=2 -Dmaven.repo.local=.m2-temp/repository -DshowSuccess=false -Dmaven.test.failure.ignore=true -DskipIntegrationTests=false -Dsandbox=true --batch-mode

Есть ли способ, чтобы верный или maven генерировал результаты теста во время их выполнения таким образом, чтобы, если выполнение теста внезапно было остановлено, я все равно мог видеть свои результаты? В качестве альтернативы, можно ли отправить какую-то команду (kill или иным образом), которая изящно остановит выполнение теста и сгенерирует отчет о достоверности на основе текущего состояния? Я не хочу просто завершать выполнение тестов при единственном сбое, я хотел бы видеть все сбои текущего выполнения. Я запускаю команду maven через bash скрипт. Конвейер CI / CD проходит через GitLab.

...