2011-10-19 65 views
12

有沒有方法給Django測試輸出着色? 基本上紅色/綠色的因素通過或失敗的結果?着色Django測試的輸出

我在Mac OS X上使用Terminal.app

回答

3

如果您已經使用了部署光纖,就可以使用這個片段來自@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!") 

它不colorise個別測試輸出,但它確實給你直接的紅/綠滿意...

2

看看Print in terminal with colors using Python?。您應該可以從那裏修改或推出自己的顏色。

+0

還有就是一個包,這是否很容易被稱爲彩色光(HTTP://pypi.python。org/pypi/colorama) –

1

我在question中發現了一個可能的解決方案,名爲pyrg。 不幸的是,沒有按預期爲我工作。

6

我發現pyrg工作得很好:

pyrg manage.py test 

所需的命令可以用PIP安裝:

pip install pyrg 
+1

愧這不適用於python 3':/' – meshy

0

如果你不使用布,你可能會喜歡redgreenunittest。基本上,你只要把它放在適當的位置在您的項目(在虛擬環境中可能),然後引用它如您在設置您的TEST_RUNNER這樣的:

TEST_RUNNER="redgreenunittest.django.simple.RedGreenTestSuiteRunner" 

如果你只使用Django的測試幫手代碼(主要是django.test.TestCase),那麼應該這樣做。否則,你可能需要直接引用redgreenunittest像這樣:

import redgreenunittest as unittest 

然後你只需運行測試。他們會有顏色。像魔術一樣。

4

我知道這是一個老問題,但django-rainbowtests旨在做到這一點。失敗和錯誤是紅色的,成功是綠色的,它會在更大的堆棧跟蹤中突出顯示項目的代碼。

6

redgreenunittests是最簡單的解決方案,它的偉大工程與Python 3.x的

安裝它

pip install redgreenunittest

在下一行添加到settings.py

TEST_RUNNER = "redgreenunittest.django.runner.RedGreenDiscoverRunner"

別忘了t Ø享受:)

./manage test

+0

其實這個軟件包是redgreenunittest(即使git repo有一個「s」),所以你需要運行'pip install redgreenunittest '。 –