2013-06-18 14 views
14

Piszę narzędzie Pythoniczne, które sprawdza poprawność określonego systemu. Każdy walidacja jest napisane jak Python unittest oraz raport wygląda następująco:Wyświetlenie python unittest skutkuje ładną, tabelaryczną formą

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 

Moim zdaniem, ten format jest trudne do odczytania, szczególnie dla nie-Pythonists. Czy jest jakiś generator raportów, które mogą wygenerować raport w miłym, tabelarycznej formie, np .:

+----------------------------------------------------------------+-----------+ 
| 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  | 
+----------------------------------------------------------------+-----------+ 

Wyjaśnienie Zestaw testowy działa na zdalnym terminalu, więc wolę narzędzi raportowania linii poleceń.

Odpowiedz

22

To nie jest dokładnie to, o co prosicie, ale istnieje kilka opcji do konieczności istnieje czytelny wyjście testowe:

  • HTMLTestRunner generuje łatwy w użyciu raporty z badań HTML w formie tabelarycznej. Here to przykładowy raport.
  • nose-html-output plugin dla nose testu płozy
  • unittest-xml-reporting - PyUnit na bazie testowej Bieżnik z JUnit jak XML sprawozdawczego
  • nos z --with-xunit opcją będzie produkować raporty stylu JUnit XML, które są łatwe do odczytania i przekształcają

zobacz także:

Jeśli chcesz zobaczyć wyniki badań w formie tabelarycznej w konsoli tak, myślę, że dobrym pomysłem byłoby napisać own nose plugin lub przetestuj biegacza na podstawie unittest.TestProgram jak to zrobiono w HTMLTestRunner.

Nadzieję, że pomaga.

+0

+1 Dzięki. Czy któreś z nich ma znaczenie dla powłoki terminalu? –

+1

Na pewno można zainstalować dowolne z tych narzędzi do generowania plików xml/html po stronie serwera i używać go na zdalnej powłoce terminala. Ale w tym przypadku musisz najpierw pobrać raporty, aby zobaczyć je w przeglądarce. Lub, alternatywnie, możesz użyć tekstowej przeglądarki internetowej, takiej jak [lynx] ​​(http://lynx.browser.org/), aby wyświetlić raporty bezpośrednio w konsoli. – alecxe

+0

To by nadmiernie skomplikować sprawy. Myślę, że zrobi to prosta zakładka w powłoce. –

4

Spójrz na Twisted's Trial.

domyślnie używa runner TreeReporter testu, który wygląda tak:

Trial's reporting

Posiada następujące:

  • Jest to raport z linii poleceń, wystarczy uruchomić:

    trial test_name.py

  • Barwne wyjście: czerwony za awarię, zielony na sukces

  • Raport używa struktury podobnej do drzewa. Wyświetla testy w ramach testów, do których należą, co pozwala szybko przejść przez wyniki, aby znaleźć konkretny test.(Mimo że zapewnia kilka więcej reports).

  • Zawiera również bibliotekę testów, wyprowadzoną z unittest.TestCase Pythona. Możesz użyć tej biblioteki, podklasy twisted.trial.unittest.TestCase. Zapewnia to kilka dodatkowych assertion methods.

  • Obejmuje opcję generowania pokrycia oświadczenia dla swoich testów.

6

Chciałbym dodać moje informacje jako komentarz do odpowiedzi alecxe, ale nie mam wystarczającej reputacji.

W przypadku kogoś, kto wciąż szuka odpowiedzi, rozwinąłem HTMLTestRunnera w prosty TestRunner, który ma tabelaryczne, kolorowe, przyjazne dla terminala wyjście. Jest to próbka jego wyjściu:

nie mam wystarczającej reputacji umieszczać obrazki albo dlatego tu jest link: http://i.stack.imgur.com/upSC0.png

Kod źródłowy jest w https://gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067

będę przepisać od samego początku, ale zachowując format wyjściowy.

+0

Łącze kodu źródłowego już nie działa. Czy masz zaktualizowany link do udostępnienia? – Deep

+0

Proszę zaktualizować link :( –

+0

Ok, hostuję go na Gist, a ja nie mam ładnego repozytorium na Githubie –

Powiązane problemy