Python 将pytest日志保存到文件中

Python 将pytest日志保存到文件中,python,logging,pytest,Python,Logging,Pytest,我看到了这个问题: 我还阅读了以下文档: 两者都不接近令人满意的解决方案 我不需要断言结果和日志一起出现,但是如果它们都在日志中就可以了 我需要测试期间生成的所有日志,但测试本身不需要它们。我需要它们来分析测试失败/成功后的测试结果 我需要成功测试和失败测试的日志 我需要标准输出只包含摘要(例如,通过的测试名称)。如果摘要中还包含失败测试的堆栈跟踪,则可以,但这不是必需的 基本上,我需要测试来产生3种不同的输出: CI的HTML/JUnit XML工件 CLI CI日志的最小输出 供测试人员/自

我看到了这个问题: 我还阅读了以下文档:

两者都不接近令人满意的解决方案

  • 我不需要断言结果和日志一起出现,但是如果它们都在日志中就可以了
  • 我需要测试期间生成的所有日志,但测试本身不需要它们。我需要它们来分析测试失败/成功后的测试结果
  • 我需要成功测试和失败测试的日志
  • 我需要标准输出只包含摘要(例如,
    通过的测试名称
    )。如果摘要中还包含失败测试的堆栈跟踪,则可以,但这不是必需的
  • 基本上,我需要测试来产生3种不同的输出:
  • CI的HTML/JUnit XML工件
  • CLI CI日志的最小输出
  • 供测试人员/自动化团队分析的扩展日志
  • 我尝试了
    pytest日志
    plugin。据我所知,它可以通过在测试运行时显示所有日志来覆盖一些默认的
    pytest
    行为。这比默认行为稍微好一点,但离我需要的还很远。从文档中我了解到,
    pytest catchlog
    将与
    pytest
    冲突,我甚至不想探讨这个选项

    问题: 这可以通过配置
    pytest
    来实现吗?或者我应该写一个插件,或者,甚至一个插件都做不到,我必须修补
    pytest

    您可以使用
    --junit xml=xml path
    开关来生成junit日志。如果您想要html格式的报告,可以使用pytest html插件。同样,您可以使用pytest excel插件以excel格式生成报告


    可以使用T形三通将日志传送到两个不同的进程。示例:
    pytest--junit xml=report.xml | tee log_for_testers.log
    它将在stdout中为CI日志生成日志,在report.xml中为CI工件生成日志,在log_中为_testers.log生成日志,用于团队分析。

    您能找到解决方案吗?我开始编写我自己的记录器,用于我的pytest模块,但我对这个解决方案不感兴趣。