Раскрашивание результатов тестов Django

Есть ли способ раскрасить выход теста Django? В основном красный/зеленый фактор для прохода или неудачных результатов?

Я использую Mac OS X с помощью Terminal.app.

Ответ 1

Если вы уже используете Fabric для развертывания, вы можете использовать этот фрагмент из @codeinthehole 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!")

Он не окрашивает отдельные тестовые выходы, но дает вам мгновенное удовлетворение от красных/зеленых...

Ответ 2

Я нашел pyrg для работы достаточно хорошо:

pyrg manage.py test

Необходимая команда может быть установлена ​​с помощью pip:

pip install pyrg

Ответ 3

redgreenunittests - это самое простое решение и отлично работает с python 3.x

Установите его

pip install redgreenunittest

добавьте следующую строку в settings.py

TEST_RUNNER = "redgreenunittest.django.runner.RedGreenDiscoverRunner"

и не забывайте пользоваться:)

./manage test

Ответ 4

Я знаю, что это старый вопрос, но django-rainbowtests стремится сделать это. Ошибки и ошибки красные, успех зеленый, и он выделяет код проекта в больших трафаретах.

Ответ 6

Я нашел возможное решение, называемое pyrg в этом вопросе. К сожалению, для меня это не сработало.

Ответ 7

Если вы не используете Fabric, вам может понравиться redgreenunittest. В основном вы просто помещаете его в нужное место в своем проекте (возможно, в вашей виртуальной среде), а затем указываете его как свой TEST_RUNNER в своих настройках следующим образом:

TEST_RUNNER="redgreenunittest.django.simple.RedGreenTestSuiteRunner"

Если вы используете только тестовый хелпер-код Django (в основном django.test.TestCase), то это должно сделать это. в противном случае вам может потребоваться ссылка redgreenunittest прямо так:

import redgreenunittest as unittest

Затем вы просто запускаете свои тесты. И у них будут цвета. Как волшебство.