Играть! Framework: настроить, какие тесты запускаются
У меня есть игра! 2 для приложения Scala, и я использую Specs2 для тестов. Я могу запустить все тесты сtest
команда или конкретная спецификация сtest-only MyParticularSpec
.
То, что я хотел бы сделать, это отметить некоторые конкретные спецификации или даже отдельные методы внутри спецификации, чтобы сделать такие вещи, как:
запускать все тесты, которые не являются интеграцией (то есть не имеют доступа к внешним ресурсам)запуск всех тестов, которые не обращаются к внешним ресурсам в режиме записи (но все же запуск тестов на чтение)запустить все тесты, кроме данногои так далее.
Я думаю, что-то подобное должно быть выполнимо, возможно, путем добавления некоторых аннотаций, но я не уверен, как это сделать.
Существует ли механизм для выборочного запуска некоторых тестов, а не других?
РЕДАКТИРОВАТЬ Я ответил сам при использованииtest-only
, Тем не менее параметр командной строки не работает дляtest
задача. ПослеSbt Guide Я попытался создать дополнительную конфигурацию SBT, как
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
)
}
Это работает, когда я передаю аргументы без параметров, например, когда я ставлюTest.Argument("plan")
, Но я не смог найти способ передать более сложный аргумент. я пытался
Tests.Argument("exclude integration")
Tests.Argument("exclude=integration")
Tests.Argument("-exclude integration")
Tests.Argument("-exclude=integration")
Tests.Argument("exclude", "integration")
Tests.Argument("exclude \"integration\"")
и, вероятно, больше. До сих пор не знаю, каков правильный синтаксис.
Кто-нибудь знает, как передать аргументы с опциями в specs2 из sbt?