Abspielen! Framework: Passen Sie an, welche Tests ausgeführt werden

Ich habe ein Stück! 2 für Scala-Anwendung, und ich verwende Specs2 für Tests. Ich kann alle Tests mit dem ausführentest Befehl oder eine bestimmte Spezifikation mittest-only MyParticularSpec.

Was ich tun möchte, ist, einige bestimmte Spezifikationen oder sogar einzelne Methoden innerhalb einer Spezifikation zu markieren, um Dinge zu tun wie:

Ausführen aller Tests, die keine Integration sind (dh nicht auf externe Ressourcen zugreifen)Ausführen aller Tests, die im Schreibmodus nicht auf externe Ressourcen zugreifen (jedoch weiterhin die Lesetests ausführen)Ausführen aller Tests bis auf einen bestimmten

und so weiter.

Ich denke, so etwas sollte machbar sein, vielleicht durch Hinzufügen einiger Anmerkungen, aber ich bin nicht sicher, wie ich es anstellen soll.

Gibt es einen Mechanismus zum selektiven Ausführen einiger Tests und nicht anderer?

BEARBEITEN Ich habe mir bei der Benutzung geantwortettest-only. Trotzdem funktioniert die Befehlszeilenoption für die nichttest Aufgabe. Im Anschluss an diesbt guide Ich habe versucht, eine zusätzliche sbt-Konfiguration zu erstellen, wie z

object ApplicationBuild extends Build {
  // more settings
  lazy val UnitTest = config("unit") extend(Test)
  lazy val specs = "org.scala-tools.testing" %% "specs" % "1.6.9" % "unit"

  val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA)
    .configs(UnitTest)
    .settings(inConfig(UnitTest)(Defaults.testTasks) : _*)
    .settings(
      testOptions in UnitTest += Tests.Argument("exclude integration"),
      libraryDependencies += specs
    )
}

Dies funktioniert, wenn ich Argumente ohne Optionen übergebe, zum Beispiel wenn ich setzeTest.Argument("plan"). Es gelang mir jedoch nicht, ein komplexeres Argument durchzugehen. Ich habe versucht

Tests.Argument("exclude integration")
Tests.Argument("exclude=integration")
Tests.Argument("-exclude integration")
Tests.Argument("-exclude=integration")
Tests.Argument("exclude", "integration")
Tests.Argument("exclude \"integration\"")

und wahrscheinlich mehr. Immer noch keine Ahnung, was die richtige Syntax ist.

Weiß jemand, wie man Argumente mit Optionen von sbt an specs2 übergibt?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage