有没有办法让Django测试输出着色? 基本上是红色/绿色因子的结果是通过还是失败?
我使用Terminal.app
在Mac OS X上。
答案 0 :(得分:11)
redgreenunittests是最简单的解决方案,它适用于python 3.x
安装
pip install redgreenunittest
将下一行添加到 settings.py
中 TEST_RUNNER = "redgreenunittest.django.runner.RedGreenDiscoverRunner"
并且不要忘记享受:)
./manage test
答案 1 :(得分:6)
答案 2 :(得分:4)
我知道这是一个老问题,但django-rainbowtests的目的是做到这一点。故障和错误是红色,成功是绿色的,它会在更大的堆栈跟踪中突出显示项目的代码。
答案 3 :(得分:3)
如果您已使用Fabric进行部署,则可以使用@codeinthehole's blog post中的此代码段:
from fabric.colors import _wrap_with
green_bg = _wrap_with('42')
red_bg = _wrap_with('41')
# Set the list of apps to test
env.test_apps = "app1 app2"
def test():
with settings(warn_only=True):
result = local('./manage.py test %(test_apps)s --settings=settings_test -v 2 --failfast' % env, capture=False)
if result.failed:
print red_bg("Some tests failed")
else:
print green_bg("All tests passed - have a banana!")
它不会对各个测试输出进行着色,但它确实可以让您立即获得红色/绿色......
答案 4 :(得分:2)
看看Print in terminal with colors using Python?。您应该可以从那里修改或推出自己的着色。
答案 5 :(得分:1)
答案 6 :(得分:1)
如果您不使用Fabric,则可能需要redgreenunittest
。基本上,您只需将其放在项目中的适当位置(可能在您的虚拟环境中),然后在您的设置中将其作为TEST_RUNNER
引用,如下所示:
TEST_RUNNER="redgreenunittest.django.simple.RedGreenTestSuiteRunner"
如果您只使用Django的测试帮助程序代码(主要是django.test.TestCase),那么应该这样做。否则你可能需要直接引用redgreenunittest
:
import redgreenunittest as unittest
然后你就可以运行测试了。他们会有颜色。像魔术一样。