着色Django测试的输出

tde*_*lam 14 django

有没有办法着色Django测试输出?基本上是红色/绿色因素导致通过或失败的结果?

我在Mac OS X上使用Terminal.app.

inj*_*aon 12

redgreenunittests是最简单的解决方案,它适用于python 3.x

安装它

pip install redgreenunittest

将下一行添加到settings.py中

TEST_RUNNER = "redgreenunittest.django.runner.RedGreenDiscoverRunner"

并且别忘了享受:)

./manage test


Rop*_*pez 6

我发现pyrg工作得很好:

pyrg manage.py test
Run Code Online (Sandbox Code Playgroud)

可以使用pip安装所需的命令:

pip install pyrg
Run Code Online (Sandbox Code Playgroud)


sup*_*cuo 3

如果您已经在使用 Fabric 进行部署,则可以使用@codeinthehole 博客文章中的以下代码片段:

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!")
Run Code Online (Sandbox Code Playgroud)

它不会对各个测试输出进行着色,但它确实会给您立即的红色/绿色满意度......