为什么 Jenkins 捕获的标准输出忽略控制台输出上的换行符?

Edd*_*vas 5 python pytest jenkins

这是有史以来最奇怪的事情,我一直在旋转我的轮子,但我似乎无法弄清楚。自从我为 Jenkins 启用保留长输出以来,它一直在忽略我的 Pytest 捕获的 stdout 设置的输出块上的换行符,但没有其他地方!如果您查看捕获的标准输出,换行符将成为文字字符而不是实际的换行符:

捕获的标准输出设置

但是,如果您查看控制台输出的任何其他部分,它看起来 100% 没问题:

捕获的 stderr 设置

这让我大吃一惊,因为 jUnit xml 看起来不错,如果我在任何终端甚至 Jenkins 上使用 -s 标志运行 pytest,它看起来也不错。即使我关闭保留长输出,它看起来完全没问题,但这会截断控制台输出,这对于我想要做的事情来说不太理想。

有人知道为什么会发生这种情况吗?

感谢您阅读此主题。

小智 1

在 ansible.cfg 中,更改默认回调:

stdout_callback = debug
Run Code Online (Sandbox Code Playgroud)