微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决带有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 举报,一经查实,本站将立刻删除。