我使用标准的python日志记录模块。当我打电话给python manage.py test
时,我想在所有测试运行之前禁用日志记录。是否有信号或其他类型的钩子可以用来调用logging.disable?或者有没有其他一些方法可以在python manage.py test
运行时禁用日志记录?在manage.py测试期间禁用日志记录?
回答
我知道的唯一方法就是编辑manage.py
本身......当然不是很优雅,但至少它应该让你到你需要的地方。
我打了补丁test_extensions也这样做。
作为一个很不错的选择,你可以运行在您的设置测试时,禁用日志文件是这样的:
if 'test' in sys.argv:
logger.removeHandler(handler)
logger.setLevel(logging.ERROR)
谢谢 - 像魅力一样工作! – 2010-12-16 10:51:59
我更喜欢有独立settings_test.py,在那里我可以删除不必要的应用程序,中间件等运行测试测试过程中我不需要的东西。我可以通过这种方式在这里禁用日志输出也:
from settings import *
import logging
# direct all logging output to nowhere
class NullHandler(logging.Handler):
def emit(self, record):
pass
logging.getLogger().addHandler(NullHandler())
./manage.py:error:no such option:--logging-clear-handlers – 2012-12-18 11:21:45
确实,我没有指定,但你需要django-nose:https://github.com/jbalogh/django-鼻子和https://nose.readthedocs.org/zh-CN/latest/usage.html?highlight=#cmdoption--logging-clear-handlers – Rmatt 2012-12-19 17:52:04
最简单的事情:
import logging
class MyTestClass(TestCase):
def setUp(self):
logging.disable(logging.CRITICAL)
这不需要编辑,打补丁,安装额外的,等等。所有日志记录完全关闭。
如果使用django-nose,那么你可以下面的代码片段运行./manage.py test
NOSE_ARGS = [
'--nologcapture'
]
- 1. 在单元测试期间禁用python日志记录
- 2. 在测试执行期间更改日志记录级别
- 3. nHibernate在单元测试期间输出sql日志记录
- 4. 禁用Hiera调试日志记录
- 5. 禁用n日志记录
- 6. 如何暂时禁用log4net的perf测试日志记录?
- 7. 在PDFBox上禁用日志记录
- 8. 在Laravel中禁用日志记录?
- 9. 在Android中禁用Apptentive日志记录
- 10. 在hapijs中禁用日志记录
- 11. 负载测试日志记录
- 12. 通过Gradle测试时记录日志
- 13. 在CakePHP 2.x的单元测试期间如何关闭日志记录?
- 14. 使用Batik Transcoder禁用日志记录?
- 15. 如何在单元测试目标c代码时禁用日志记录
- 16. 使用系统日志时禁用/启用日志记录
- 17. 禁用Apache Flink日志记录
- 18. Uwsgi禁用django.request日志记录
- 19. Log4Net/C# - 禁用默认日志记录
- 20. 如何禁用Windows Installer日志记录?
- 21. laravel禁用查询日志记录
- 22. 如何禁用卡蒙日志测试?
- 23. 如何使用log4j禁用类的调试日志记录?
- 24. 使用.Net Core Console日志记录器记录事件日期时间
- 25. 禁用活动记录的Log4Net日志记录
- 26. 如何在Azure中禁用IIS的详细无用日志的日志记录
- 27. 批处理文件 - 格式日志记录的日期/时间
- 28. 单元测试应该使用日志记录吗?
- 29. 如何配置休眠的JUnit测试公用日志记录
- 30. 禁用apache.http.wire调试日志
阿当添加到您的
settings.py
文件以禁用日志输出,我没有想到的是(...很明显嘛) 。谢谢! – 2010-06-13 13:20:33@Eric,不客气! – 2010-06-13 14:17:43