Grać! framework: dostosuj, które testy są uruchamiane
Mam zabawę! 2 dla aplikacji Scala i używam Specs2 do testów. Mogę uruchomić wszystkie testy za pomocątest
polecenie lub określona specyfikacja za pomocątest-only MyParticularSpec
.
Chciałbym oznaczyć niektóre specyfikacje, a nawet pojedyncze metody w specyfikacji, aby robić takie rzeczy jak:
uruchomienie wszystkich testów, które nie są integracyjne (to znaczy, że nie mają dostępu do zasobów zewnętrznych)uruchomienie wszystkich testów, które nie mają dostępu do zasobów zewnętrznych w trybie zapisu (ale nadal działają testy odczytu)przeprowadzanie wszystkich testów, ale jeden testi tak dalej.
Myślę, że coś takiego powinno być wykonalne, być może przez dodanie kilku adnotacji, ale nie jestem pewien, jak to zrobić.
Czy istnieje mechanizm selektywnego uruchamiania niektórych testów, a nie innych?
EDYTOWAĆ Odpowiedziałem sobie podczas używaniatest-only
. Mimo to opcja wiersza poleceń nie działa dlatest
zadanie. Śledzącsbt guide Próbowałem stworzyć dodatkową konfigurację sbt, taką jak
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
)
}
Działa to, gdy przekazuję argumenty bez opcji, na przykład gdy umieściłemTest.Argument("plan")
. Nie byłem jednak w stanie znaleźć bardziej złożonego argumentu. próbowałem
Tests.Argument("exclude integration")
Tests.Argument("exclude=integration")
Tests.Argument("-exclude integration")
Tests.Argument("-exclude=integration")
Tests.Argument("exclude", "integration")
Tests.Argument("exclude \"integration\"")
i prawdopodobnie więcej. Nadal nie ma pojęcia, jaka jest poprawna składnia.
Czy ktoś wie, jak przekazywać argumenty z opcjami do specs2 z sbt?