Toque! estrutura: personalize quais testes são executados
Eu tenho um jogo! 2 para o aplicativo Scala e estou usando o Specs2 para testes. Eu posso executar todos os testes com otest
comando ou uma especificação específica comtest-only MyParticularSpec
.
O que eu gostaria de fazer é marcar algumas especificações particulares, ou até mesmo métodos únicos dentro de uma especificação, para fazer coisas como:
executando todos os testes que não são integração (isto é, que não acessam recursos externos)executando todos os testes que não acessam recursos externos no modo de gravação (mas ainda executando os testes de leitura)executando todos os testes, mas um dadoe assim por diante.
Eu acho que algo assim deveria ser factível, talvez adicionando algumas anotações, mas não tenho certeza de como fazer isso.
Existe um mecanismo para executar seletivamente alguns testes e não outros?
EDITAR Eu respondi a mim mesmo quando useitest-only
. Ainda assim, a opção de linha de comando não funcionatest
tarefa. Seguindo oguia sbt Eu tentei criar uma configuração sbt adicional, como
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
)
}
Isso funciona quando eu passo argumentos sem opções, por exemplo, quando eu colocoTest.Argument("plan")
. Mas não consegui descobrir como passar um argumento mais complexo. eu tentei
Tests.Argument("exclude integration")
Tests.Argument("exclude=integration")
Tests.Argument("-exclude integration")
Tests.Argument("-exclude=integration")
Tests.Argument("exclude", "integration")
Tests.Argument("exclude \"integration\"")
e provavelmente mais. Ainda não há nenhuma pista sobre qual é a sintaxe correta.
Alguém sabe como passar argumentos com opções para specs2 de sbt?