Подтвердить что ты не робот

Цветной вывод unittest

Я использую unittest (фактически unittest2) для тестирования Python вместе с Python Mock для насмешек и nose для запуска всех тестов за один проход.

Мне не хватает возможности рассказать, что работает, и что не так с первого взгляда от зеленых/красных баров. Есть ли способ получить цветной вывод из unittest?

(Изменение набора тестов в этот момент не является вариантом, и мне действительно нравится unittest)

4b9b3361

Ответ 1

В python 2.x вы можете попробовать pyrg. Однако не работает в Python 3.

Ответ 2

Используя метод, очень похожий на ответ robert, я (сегодня!) выпустил пакет, который позволяет выводить цвет в результатах тестирования unittest. Я назвал его colour-runner.

Чтобы установить его, запустите:

pip install colour-runner

Затем, когда вы использовали unittest.TextTestRunner, вместо этого используйте colour_runner.runner.ColourTextTestRunner.

Смотрите как выглядит с verbosity=1... и verbosity=2

Ответ 3

У меня хороший успех с nosetests и rednose. Он все еще поддерживался во время написания этого сообщения.

Ответ 4

Создайте класс, который наследуется от unittest.TestResult (скажем, MyResults) и реализует кучу методов. Затем создайте класс, который наследует от unittest.TextTestRunner (скажем, MyRunner) и переопределяет _makeResult(), чтобы вернуть экземпляр MyResults.

Затем создайте тестовый набор (который вы, вероятно, уже получили), и вызовите MyRunner().run(suite).

Вы можете поместить любое поведение, которое вам нравится, включая цвета, в MyResults.

Ответ 5

Если вы можете изменить только строку своих тестовых вводок, вы можете использовать redgreenunittest. Это клон, который я сделал из unittest, но имеет цветной вывод.

Если вы хотите использовать его без обновления какого-либо мяса вашего кода, вы можете просто использовать его так:

import redgreenunittest as unittest

Это не клон unittest2, поэтому он не будет работать с кодом Андреа, но его источник находится прямо там, поэтому unittest2 fork redgreenunittest не будет из вопрос.

Кроме того, любые комментарии "вы делаете неправильно" приветствуются, если они содержат некоторые аргументы. Я бы хотел сделать это правильно.

Ответ 6

Я также нашел еще один плагин для носа: YANC at https://pypi.python.org/pypi/yanc

Работает для меня с Python 3.5 и носом 1.3.7 (я не мог использовать какие-либо другие варианты носа, перечисленные выше, чтобы работать)

Ответ 7

Попробуйте rudolf плагин для nosetests.