2016-09-21 1 views
6

Ich habe viel Frustration, die versucht, alle meine Tests von zu laufen - beim Ausschließen eines spezifischen Etiketts. Hier ist, was ich zu laufen versuchen:Excluded besonders gekennzeichnete Tests von SBT, wenn ich ScalaTest verwende

testOnly * -- -l "com.my.project.path.tags.ValidationTest" 

ich viele Variationen dieses Befehls versucht habe, einschließlich den * mit dem Pfad zu einer Klasse zu ersetzen oder den Pfad zu einem Paket in etwa so:

testOnly "com.my.project.path.somePackage" -- -l "com.my.project.path.tags.ValidationTest" 

Und ich habe mit und ohne Anführungszeichen um das Paket versucht.

Ich habe gerade gelesen, dass testOnly in der neuen Version sbt und nicht test-only verwendet wird. Ich habe diese Syntax (und viele Variationen) ausprobiert, und nichts scheint zu funktionieren. Ich habe meine Tests wie diese ein:

"some method" should "fail when doing something" taggedAs ValidationTest in { ... } 

Ich habe object ValidationTest extends Tag("com.my.project.path.tags.ValidationTest") in TestTag.scala definiert.

Ich habe auch versucht, diese, wenn das Verfahren mit dem it Schlüsselwort definiert ist, statt "some method" should "fail..."

Sbt with ScalaTest zeigt folgendes unter „Einschließen und Ausschließen Tests mit Tags

> test-only org.acme.* -- -n CheckinTests 
> test-only org.acme.* -- -n FunctionalTests -l org.scalatest.tags.Slow 
> test-only org.acme.* -- -n "CheckinTests FunctionalTests" -l "org.scalatest.tags.Slow org.scalatest.tags.Network" 
+0

Um klar zu sein, wollen oder wollen Sie nicht, dass diese Tags ausgeführt werden? Klingt so, als wollten Sie nicht, dass Dinge mit diesem Tag laufen, was Scalatest meiner Meinung nach nicht unterstützt. – wheaties

+0

ScalaTest ** ** ** ** unterstützt das Überspringen dieser Tags oder das Einschließen dieser Tags über die Flags "-n" oder "-l". Siehe hier: [ScalaTest mit Sbt] (http://www.scalatest.org/user_guide/using_scalatest_with_sbt). Siehe 3/4 unten auf der Seite. – DanGordon

Antwort

0

Nur ein paar Vermutungen:

  • all diese Syntax funktioniert nur von sbt Konsole und Funktioniert nicht von der Kommandozeile aus;
  • der Paketname ohne Anführungszeichen sein sollte und mit asterix enden, sollte der Tag mit Anführungszeichen gesetzt werden (z testOnly com.my.project.* -- -l "com.my.project.path.tags.ValidationTest")
  • testOnly betrifft nur Unit-Tests, wenn Sie Integrationstests haben sollten, sollten Sie zum Beispiel it:testOnly * -- -l "path.to.Tag".
+0

Ich habe das nicht getestet - aber ich denke, es hat damit zu tun, dass ich die sbt-Konsole nicht verwende - und auch keine Anführungszeichen – DanGordon

+1

Also, wie kann ich die gleichen Dinge von der Kommandozeile aus tun? – DanGordon

+0

Eine Sache zu versuchen wäre, Kommandos als Parameter an die sbt-Konsole zu übergeben, z.B. in einem Batch-Datei-/Shell-Skript. Ich habe es noch nicht versucht und weiß nicht, ob es überhaupt möglich ist. – Reinis

Verwandte Themen