2

我将 Jenkins 与 Perl TAP::Harness::JUnit 与多个测试脚本一起使用。在一个测试脚本完成之前,我无法让 Jenkins 刷新到控制台。它只是缓冲整个测试套件,并在完成后立即将其全部刷新。我得到如下实例:

  • 11:56:19 1..2
  • 11:56:19 好的 1 - 测试 1
  • 11:56:19 实际时间: 11:55:59 : 现在睡 20 秒...
  • 11:56:19 实际时间:11:56:19
  • 11:56:19 好的 2 - 测试 2

我已经花了两个星期的时间,我知道所有正常的解决方案,但它们似乎都不起作用。我已经merge => 1在我的 perl TAP::Harness::JUnit 中进行了设置,并且我知道 STDOUT 与 STDERR 交织在一起,但是我尝试了各种冲​​洗方式,但在 Jenkins 控制台输出上没有任何效果。

请注意,如果我在机器的命令行中尝试相同的线束,一切都会立即刷新。我试过,,,,,stdbuf -i0 -o0 -e0打印到文件stdbuf -oL -eL。没有任何效果$|=1autoflush STDOUT 1CMD 1>console.log 2>&1

这在进行性能指标时很烦人,因为我无法将某时某时 CPU 上的高压与特定测试的时间戳相关联,因为时间戳毫无意义。然而,最烦人的暗示是,当测试在测试脚本中途挂起或崩溃时,没有输出任何输出,所以我不知道为什么测试会崩溃。

4

0 回答 0