Отображение python unittest приводит к хорошей табличной форме
Я пишу инструмент Pythonic, который проверяет правильность определенной системы. Каждое подтверждение записывается как Python unittest
, и отчет выглядит следующим образом:
test_exclude_list_not_empty (__main__.TestRepoLists)
Assert the the exclude list is not empty ... ok
test_include_list_not_empty (__main__.TestRepoLists)
Assert the the include list is not empty ... ok
test_repo_list_not_empty (__main__.TestRepoLists)
Assert the the repo list is not empty ... ok
По-моему, этот формат трудно читать, особенно для непитонистов. Есть ли какой-либо генератор отчетов, который может генерировать отчет в хорошей табличной форме, например:
+----------------------------------------------------------------+-----------+
| Test | Status |
+----------------------------------------------------------------+-----------+
| Assert the the exclude list is not empty | OK |
| Assert the the include list is not empty | OK |
| Assert the the repo list is not empty | OK |
| All the items in the include list should be in the repo list | OK |
+----------------------------------------------------------------+-----------+
Разъяснение Набор тестов работает на удаленном терминале, поэтому я предпочитаю инструменты для создания командной строки.
Ответы
Ответ 1
Это не совсем то, о чем вы просите, но есть несколько вариантов наличия там читаемого тестового вывода:
- HTMLTestRunner создает простые в использовании тестовые отчеты HTML в табличной форме. Здесь пример отчета.
- nose-html-output плагин для nose test runner
- unittest-xml-reporting - тестовый бегун на основе PyUnit с JUnit, как отчет XML
- нос с опцией
--with-xunit
создаст отчеты типа junit xml, которые легко читать и конвертировать.
Также смотрите:
Если вы хотите видеть результаты теста в табличной форме на консоли, я думаю, что хорошая идея - написать свой собственный плагин для носа или test runner на основе unittest.TestProgram
, как это было сделано в HTMLTestRunner.
Надеюсь, что это поможет.
Ответ 2
Я хотел бы добавить свою информацию в качестве комментария в ответ alecxe, но у меня недостаточно репутации для этого.
Если кто-то все еще ищет ответ, я разветкил HTMLTestRunner в простой TestRunner, который имеет табличный, цветной, удобный для терминала вывод.
Это пример его вывода:
У меня недостаточно репутации для отправки изображений, поэтому вот ссылка: http://i.stack.imgur.com/upSC0.png
Исходный код находится в https://gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067
Я буду переписывать его с нуля, но сохраняя формат вывода.
Ответ 3
Посмотрите Twisted Trial.
По умолчанию используется тестер TreeReporter
, который выглядит так:
![Trial's reporting]()
Он имеет следующее:
-
Это отчет командной строки, просто запустите:
trial test_name.py
-
Цветной вывод: красный для отказа, зеленый для успеха
-
В отчете используется древовидная структура. Он отображает тесты в TestCases, которые они принадлежат, позволяя вам быстро пройти результаты, чтобы найти конкретный тест. (Хотя он предоставляет еще пару отчетов).
-
Он также включает тестовую библиотеку, полученную из Python unittest.TestCase
. Вы можете использовать эту библиотеку путем подкласса twisted.trial.unittest.TestCase
. Это дает еще несколько методов утверждения.
-
Он включает в себя возможность генерации покрытия операторов для ваших тестов.