Ответ 1
В python 2.x вы можете попробовать pyrg. Однако не работает в Python 3.
Я использую unittest
(фактически unittest2
) для тестирования Python вместе с Python Mock для насмешек и nose для запуска всех тестов за один проход.
Мне не хватает возможности рассказать, что работает, и что не так с первого взгляда от зеленых/красных баров. Есть ли способ получить цветной вывод из unittest?
(Изменение набора тестов в этот момент не является вариантом, и мне действительно нравится unittest)
В python 2.x вы можете попробовать pyrg. Однако не работает в Python 3.
Используя метод, очень похожий на ответ robert, я (сегодня!) выпустил пакет, который позволяет выводить цвет в результатах тестирования unittest
. Я назвал его colour-runner
.
Чтобы установить его, запустите:
pip install colour-runner
Затем, когда вы использовали unittest.TextTestRunner
, вместо этого используйте colour_runner.runner.ColourTextTestRunner
.
Смотрите как выглядит с verbosity=1
... и verbosity=2
У меня хороший успех с nosetests и rednose. Он все еще поддерживался во время написания этого сообщения.
Создайте класс, который наследуется от unittest.TestResult
(скажем, MyResults
) и реализует кучу методов. Затем создайте класс, который наследует от unittest.TextTestRunner
(скажем, MyRunner
) и переопределяет _makeResult()
, чтобы вернуть экземпляр MyResults
.
Затем создайте тестовый набор (который вы, вероятно, уже получили), и вызовите MyRunner().run(suite)
.
Вы можете поместить любое поведение, которое вам нравится, включая цвета, в MyResults
.
Если вы можете изменить только строку своих тестовых вводок, вы можете использовать redgreenunittest
. Это клон, который я сделал из unittest
, но имеет цветной вывод.
Если вы хотите использовать его без обновления какого-либо мяса вашего кода, вы можете просто использовать его так:
import redgreenunittest as unittest
Это не клон unittest2, поэтому он не будет работать с кодом Андреа, но его источник находится прямо там, поэтому unittest2
fork redgreenunittest
не будет из вопрос.
Кроме того, любые комментарии "вы делаете неправильно" приветствуются, если они содержат некоторые аргументы. Я бы хотел сделать это правильно.
Я также нашел еще один плагин для носа: YANC at https://pypi.python.org/pypi/yanc
Работает для меня с Python 3.5 и носом 1.3.7 (я не мог использовать какие-либо другие варианты носа, перечисленные выше, чтобы работать)
Попробуйте rudolf плагин для nosetests.