并行执行的 Pytest 实时日志记录 - 可能吗?

Kru*_*lur 6 pytest pytest-xdist

我有一个运行的测试套件

python3 -mpytest --log-cli-level=DEBUG ...
Run Code Online (Sandbox Code Playgroud)

在构建服务器上。如果测试因某种原因卡住或缓慢(测试使用外部资源),实时日志可用于排除故障。

为了加快速度,可以使用例如运行它们

python3 -mpytest -n 4 --log-cli-level=DEBUG ...
Run Code Online (Sandbox Code Playgroud)

有四个并行测试运行程序。加速几乎与进程数量成线性关系,这很好,但不幸的是父进程吞下了所有实时日志。如果测试失败,我会获取捕获的日志,但我还需要实时日志来了解实时发生的情况。我知道所有四个并行运行的输出都会混合,这很好。目的是让提交者检查构建服务器输出并大致了解发生了什么。

我目前正在使用 pytest-xdist,但没有使用它的任何更高级的功能(只是多处理)。