2016-08-29 2 views
0

Ich benutze HUnit-Plus über stack test, die ich glaube, verwendet Distribution.TestSuite.Zeilennummern von HUnit-Plus/Distribution.TestSuite/Stapeltestfehler?

Wenn ich Kompilierungsfehler bekomme, bekomme ich Dateipfade und Zeilennummern in den Fehler. Das ist großartig, weil ich einfach auf den Fehler in meinem Editor klicken und direkt zum entsprechenden Code springen kann.

Andere Zeiten gibt es keine Kompilierungsfehler und stattdessen ich eine Ausgabe wie diese:

### Failure in testFoo: expected: 8 

Das ist nicht so groß ist, weil jedes Mal, wenn ich auf den entsprechenden Test von Hand zu navigieren. Außerdem ist es manchmal mehrdeutig, welche Assertion fehlgeschlagen ist, und ich muss eine Zeichenfolge hinzufügen, um die Assertion zu bezeichnen, die sich wiederholt, da die Zeichenfolge lediglich den Inhalt der Assertion in irgendeiner Form wiederholt (oder sonst bedeutungslos ist). Mit einer Zeilennummer wäre das kein Problem.

Gibt es eine Möglichkeit, mit dieser Konfiguration Zeilennummern und Dateipfade für Testfehler zu drucken?

Antwort

1

Kompilierungsfehler werden von GHC selbst generiert, die Ihnen Zeilennummern gibt, meines Wissens keine Testsuite hat diese Funktion, die wäre eine wirklich nette Sache zu haben, obwohl . Was ich sehr hilfreich fand, ist hspec-expectations-pretty-diff das ist eine schöne diffing Ausgabe aber ohne Zeilennummern , überprüfte ich es auch Dateipfad und Zeilennummer!

example output of hspec-expectations-pretty-diff

Auch sehe ich etwas Platz für Verbesserungen für Ihre Testfälle - in der Regel ein Testfall in meinem Projekt hat eine Zeichenfolge, die den Test zu beschreiben - daher ist es selten eindeutig ist, welcher Testfall fehlgeschlagen. Sie können auch die gesamte Macht von Haskell verwenden, um dieses String zu erzeugen!

+0

Die Pfad-/Zeilennummer-Ausgabe ist auch konventioneller, wenn Sie nur 'Test.Hspec' anstelle von' Test.Hspec.Expectations' zusammen verwenden als 'Test.HUnitPlus'. Die Regexp, die ich bereits in Emacs verwendet habe, analysiert diese Ausgabe :-) –