【问题标题】:When testing logging in Django using testfixtures, how can I silence the log emission?使用 testfixtures 在 Django 中测试日志记录时,如何使日志发射静音?
【发布时间】:2013-09-18 16:28:53
【问题描述】:

我正在使用来自 testfixtures 的 LogCapture 对象来单元测试日志记录语句。效果很好。

但是,在我的测试套件中,日志实际上被发送到控制台(对于 Jenkins 来说很混乱),更糟糕的是,发送到 Sentry!

我不想重写 LOGGING 设置;这似乎破坏了测试本身。如何在捕获日志的同时防止这些排放?

【问题讨论】:

  • 这是一个选项:在settings.py 中检查if 'test' in sys.argv: 并关闭控制台和哨兵记录器?
  • 在这里查看我的答案:stackoverflow.com/questions/5255657/…
  • @Hassek:我喜欢你的回答(在问这个问题之前看过它),但它不适用于这种情况。我不想精确地禁用日志记录,因为我想捕获它以在我的单元测试中使用。相反,我只想让发射静音。
  • 哦,很有趣,如果你发现了一些关于它的信息,请告诉我,但我猜测你需要在测试开始时将静音功能添加到日志配置中。

标签: python django unit-testing logging


【解决方案1】:

您考虑过使用模拟库吗?

https://pypi.python.org/pypi/mock/

这将使您“伪造”呼叫哨兵并仍然跟踪它记录的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2017-08-03
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    相关资源
    最近更新 更多