2011-12-20 57 views
13

当我跑我的Django的测试,经过失败,我从南调试输出的几页,像这样的:如何在django中禁用南调试日志记录?

south: DEBUG: south execute "CREATE INDEX "sometable_4d5bad5" ON "video_playable" ("network_id");" with params "[]" 
south: DEBUG: south execute "CREATE INDEX "sometable_790e6d98" ON "video_playable" ("published");" with params "[]" 
south: DEBUG: south execute "CREATE INDEX "sometable_72312277" ON "video_playable" ("archived");" with params "[]" 

而这一切的日志输出,相关的错误信息被淹没在海垃圾。有没有办法禁用这个输出?

+0

这是一个真正有用的帖子 - http://pypede.wordpress.com/2012/06/17/disable-south-debug-logging-when-testing-apps-with-nose-in-django/ –

回答

14

把这个放在你的代码的某个地方。我有它在myapp/migrations/__init__.py

import logging 
south_logger=logging.getLogger('south') 
south_logger.setLevel(logging.INFO) 
7

您可以在您的setting.py中将SOUTH_TESTS_MIGRATE设置为False。这将在测试期间禁用所有迁移。我知道这不是正是你想要的,但希望将是有益的

如果这是假的,南方的测试运行整合将使得测试 数据库使用执行syncdb来创建的,而不是通过迁移(将 默认)。将其设置为false,如果你有需要太长时间 每一个测试运行时间迁移的迁移,但如果依靠迁移 做特别的东西要警惕。

+0

是,这并不完全解决我的问题,因为目前我的te sts依赖于数据迁移。但是这些消息太令人讨厌了,重新设计测试是值得的麻烦......谢谢! – lfagundes

3
import logging 
import south.logger 
logging.getLogger('south').setLevel(logging.CRITICAL) 

我能够设置这在我的设置/ testing.py

此外,如果这仅仅是困扰着你与你的Django鼻试验添加

nosetests --nologcapture