2017-11-05 2 views
0

Ich möchte einen teuren Hspec-Test nur ausführen, wenn ein Flag in der Befehlszeile für stack test festgelegt ist. Ich verstehe, dass ich stack test --test-arguments=... verwenden kann, aber was würde ich in der Befehlszeile verwenden und wie würde ich die bedingte Prüfung in meinem Spec.hs durchführen? Ich kann nirgendwo anders ein gutes Beispiel finden.Haskell Hspec - Führen Sie nur einen teuren Test auf dem Befehlszeilenflag

EDIT: Ist es möglich, einen Test übersprungen zu bekommen, wenn nur stack test ohne Überspringen ausgeführt wird? Oder wäre dies möglich, indem Sie eine andere ähnliche Spezifikationsdatei mit nur dem teuren Test verwenden?

Antwort

1

Sie können --skip=PATTERN verwenden, um einen Test zu überspringen. Darüber hinaus können Sie die Befehlszeilenargumente in Ihrem eigenen main überprüfen, wenn Sie die automatische Testentdeckung nicht verwenden, und Config für hspecWith (configSkipPredicate) festlegen.

Wenn Sie einen Test automatisch überspringen möchten, ohne ihn in der Befehlszeile anzugeben, können Sie eine .hspec-Datei verwenden, siehe here. Sie können das Überspringen überschreiben, indem Sie angeben, dass das Muster in der Befehlszeile angezeigt werden soll.

+0

Das ist großartig. Ist es möglich, dass ein Test übersprungen wird, wenn nur "Stack-Test" ausgeführt wird und kein Skip angegeben ist? Oder wäre dies möglich, indem Sie eine andere ähnliche Spezifikationsdatei mit nur dem teuren Test verwenden? –

+1

Sie können das Überspringen in einer '.hspec'-Datei einstellen, siehe http://hspec.github.io/options.html#specifying-options-in-configfiles. – Zeta

Verwandte Themen