2011-07-10 14 views
11

Czy są jakieś rozszerzenia HUnit lub QuickCheck, które umożliwiają systemowi ciągłej integracji, takim jak Bamboo, wykonywanie szczegółowych raportów z wyników testów?HUnit/QuickCheck z ciągłą integracją

Do tej pory najlepszym pomysłem jest po prostu wywołanie testów jako części skryptu budowania i poleganie na testach zakończonych niepowodzeniem z niezerowym kodem wyjścia. Jest to skuteczne, gdy trzeba zwrócić uwagę, gdy test kończy się niepowodzeniem, ale powoduje błąd w kompilacji z błędami testowymi i wymaga przejścia przez wyjście konsoli w celu ustalenia źródła problemu.

Jeśli jest to najlepsza opcja z obecnymi narzędziami, moim pomysłem jest napisanie modułu raportowania dla HUnit, który byłby produkowany w JUnit XML format, a następnie wskazywanie narzędzia CI tak, jakby było raportowanie w projekcie Java. Wydaje się to jednak nieco hackowskie, dlatego doceniam twoje przemyślenia zarówno na temat istniejących opcji, jak i wskazówek dotyczących nowego rozwoju.

+1

Naśladowanie formatu XML JUnit wydaje się być całkiem przyzwoitym sposobem na uzyskanie największego sukcesu za kodowanie kodu. Sprawdź, czy HUnit ma już na to wsparcie. QuickCheck jest nieco trudniejsze, ponieważ nie jest to naprawdę tradycyjny styl XUnit, choć prawdopodobnie można go również dobić. –

+0

Może trochę pokrewne: http://stackoverflow.com/questions/4687387/organizing-haskell-tests – hvr

Odpowiedz

11

The test-framework package dostarcza narzędzia do integracji testów przy użyciu różnych paradygmatów testowania, w tym HUnit i QuickCheck, a jego biegacz testów konsolowych może być oznaczony flagą, która sprawia, że ​​generuje XML zgodny z JUnit. Używamy go z Jenkinsem do ciągłej integracji. Przykład

wywołania:

$ ./test --jxml=test-results.xml 
+0

Btw, czy udało ci się zintegrować wykresy zasięgu kodu w Jenkins? – hvr

+0

Dzięki za to! Zgadzam się z @hvr, że byłoby bardzo fajnie zintegrować również raporty hpc. Nie powinno to być zbyt trudne w przypadku 'znaczników hpc' ... – acfoltzer

+0

Jak mogę przekonwertować' --jxml' na 'cabal install --ableable? Tests invocation? – ShiDoiSi

2

Właśnie wydany pakiet, który generuje testowych apartamentów Opierając się moduły zawierające właściwości QuickCheck: http://hackage.haskell.org/package/tasty-integrate

to jest jeden krok testowego ram/smaczne u w momencie, gdy silnie ciągnie/agreguje je z systemu plików, zamiast polegać na przechowywaniu rekordu pliku. Mam nadzieję, że pomoże to w procesie CI.