Цветной вывод из родного тестового бегуна 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"))