带有xdist的Pytest无法为所有测试打印日志

问题描述

我写了一个使用pytest的端口扫描程序测试。它接收带有IP地址列表的json文件,然后使用parametrize对每个IP地址运行测试。使用Python logging模块使用自定义日志消息创建日志文件。通过使用pytest-xdist进行并行执行,我还可以大大减少运行时间。

问题在于,使用pytest-xdist运行测试时,只有一个测试记录到日志文件中,而CLI输出与预期的完全相同。例如,如果测试针对4个不同的IP地址运行4次,则仅将其中一次运行的结果记录到日志文件中。确实记录下来的测试似乎是随机的,并且每次运行都会发生变化。并行执行测试时,登录到外部文件的正确方法是什么?

# Contents of pytest.ini
[pytest]
log_cli = 1
log_cli_level = CRITICAL
log_cli_format = %(message)s

log_file = port_scanner.log
log_file_level = DEBUG
log_file_format = %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)
log_file_date_format=%Y-%m-%d %H:%M:%s

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)