pytest选项,用于从测试的cod输出打印/日志语句

2024-03-29 07:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 在pytest中有没有一个选项,测试的代码输出它的日志记录.info(…)到控制台的消息
  • 这将使开发我的测试用例变得更加容易,因为有很多数据转换正在进行,我在转换中迷失了方向
  • 一旦我对测试用例满意,我就可以关闭这个选项,这样冗长的日志语句就消失了

  • 我是TDD的新手,想转入这个实践,但是看不到我的打印/日志语句会让我感到很不舒服,因为我感觉迷失了方向

    • 我通常创建一个if __name__ == '__main__'来运行代码的主要函数
    • 这至少允许我查看日志语句,以便在代码运行时理解代码
    • 但我好像在重复努力

Tags: 数据代码info消息pytest选项记录测试用例
2条回答

Pytest还有它自己的实现,在捕获日志记录时向您显示发生了什么。如果您转到这个页面上的Live日志:https://docs.pytest.org/en/latest/logging.html,它的解释非常好。你需要一个pytest.ini文件设置的文件:

[pytest]
log_cli = True

这将使您的日志在发出时显示在终端上。然后,您可以将pytest调用的级别设置为DEBUG:

pytest  log-cli-level DEBUG

或者你可以在你的pytest.ini文件以及:

[pytest]
log_cli = True
log_cli_level = DEBUG

其中log\u cli\u level设置显示哪些日志的级别。这种方法不会让您更改自己的代码,这很好。这当然也要求你在第一时间使用日志,但这是一个好习惯,无论如何。你知道吗

关于这个问题有一篇很好的文章: https://pythontesting.net/framework/pytest/pytest-logging-real-time/

  • 我将所有print语句转换为底层代码中的日志语句
  • 到包含我添加的test_transform()函数的模块

`

import logging
logging.basicConfig(level=logging.DEBUG)

def test_transform()
   ...

相关问题 更多 >