Цветной вывод из родного тестового бегуна Django

Я пытаюсь получить цветной вывод (красный или зеленый) при запуске моих Django-тестов с помощью родного тестового бегуна Django.

Я запускаю поэтический virtualenv (python 3.11.6) с Django (5.0.3) и colorama (0.4.6) в zsh на MacOS, но вывод остается бесцветным.

<<<Следуя

документации Django, я установил export DJANGO_COLORS="error=yellow/blue,blink;notice=magenta" в моем zsh перед вызовом python manage.py test apps.myapp. Тем не менее, вывод остается бесцветным. Тот же результат при добавлении опции --force-color.

Однако, запустив тот же virtualenv и выполнив

from colorama import Fore, Style

print(Fore.RED + 'This is red text' + Style.RESET_ALL)

возвращает красный текст (как и ожидалось).

Что нужно сделать, чтобы получить цветной вывод из родного тестового прогона Django, не переключаясь на другой?

Для самых простых цветов можно использовать BaseCommand и его стили, построенные на основе стандартного PALETTE:

class ColorTestCase(TestCase):

    def setUp(self):
        self.command = BaseCommand()
        self.style = self.command.style

    def test_colorful_messages(self):
        self.assertTrue(expr=True, msg=self.style.ERROR("1s Test Failed"))
        self.command.stdout.write(self.style.SUCCESS("First test was successfull"))

        self.assertTrue(expr=False, msg=self.style.ERROR("2nd Test Failed"))
Вернуться на верх