pytest - 从运行测试的CLI命令指定日志级别

时间:2017-05-11 14:54:01

标签: python linux logging command-line-interface pytest

我的团队和我正在使用Pytest + Jenkins自动化我们的产品测试。我们一直在使用python的标准Logging lib来在测试期间,每次测试之前和之后获得正确的日志消息等。我们有多层日志记录,我们注销了ERROR,WARNING,INFO和DEBUG。我们的记录器的默认值是INFO。我们在测试的主要设置中创建记录器对象,并将其传递给创建的每个对象,因此我们所有的日志都会转到同一个记录器。

到目前为止,当我们开发新功能或测试时,我们在本地处于DEBUG模式,并在向SVN提交新代码时将其更改回INFO,但我尝试添加选项以使用CLI,但我还没有发现任何易于实现的东西。我已经考虑过使用Fixtures,但据我所知,这些只是测试本身,而不是设置/拆卸阶段,并且创建日志的次数较少。 关于如何在CLI命令中添加Pytest选项以支持更改日志记录级别的任何黑客或想法?

2 个答案:

答案 0 :(得分:1)

尝试--log-cli-level=INFO

喜欢:

pytest -vv -s --log-cli-level=INFO --log-cli-format="%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)" --log-cli-date-format="%Y-%m-%d %H:%M:%S" ./test_file.py

答案 1 :(得分:0)

现在已内置到pytest中。运行测试时,只需在命令行中添加“ --log-level =”即可。例如:

pytest --log-level=INFO

文档更新可在此处找到:https://docs.pytest.org/en/latest/logging.html