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

Отображение 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       |
+----------------------------------------------------------------+-----------+

Разъяснение Набор тестов работает на удаленном терминале, поэтому я предпочитаю инструменты для создания командной строки.

4b9b3361

Ответ 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. Это дает еще несколько методов утверждения.

  • Он включает в себя возможность генерации покрытия операторов для ваших тестов.