Вывод на консоль Jenkins не сбрасывает строку за строкой, хотя сценарий сбрасывается в локальной консоли

Я использую Jenkins с Perl TAP::Harness::JUnit с множественными тестовыми сценариями. Я не могу заставить Дженкинса перейти на консоль, пока не закончится один тестовый сценарий. Он просто буферизирует весь набор тестов и сбрасывает все сразу после завершения. Я получаю такие случаи, как:

  • 11:56:19 1..2
  • 11:56:19 нормально 1 - Test1
  • 11:56:19 Фактическое время: 11:55:59: сейчас спим 20 секунд...
  • 11:56:19 Фактическое время: 11:56:19
  • 11:56:19 хорошо 2 - Test2

Я потратил на это две недели и знаю все нормальные решения, но ни одно из них, похоже, не работает. Я поставил merge => 1 в моем Perl TAP::Harness::JUnit и я знаю, что переплетает STDOUT с STDERR, но я перепробовал все способы сброса, и ничего не работает на выводе Jenkins Console.

Имейте в виду, если я попробую использовать тот же жгут в командной строке моей машины, все мгновенно исчезнет. я пытался stdbuf -i0 -o0 -e0, stdbuf -oL -eL, $|=1, autoflush STDOUT 1, печать в файл CMD 1>console.log 2>&1, Ничего не работает

Это раздражает при выполнении показателей производительности, потому что я не могу соотнести высокое давление на процессор в такое-то время с временными метками в конкретных тестах, потому что временные метки не имеют смысла. Однако самое неприятное следствие заключается в том, что когда тест зависает или падает в середине тестового сценария, выходные данные не печатаются, поэтому я не могу знать, почему тест потерпел крах.

0 ответов

Другие вопросы по тегам