我想配置sbt-assembly
跳过一个特定的测试类。
有什么办法可以做到吗?如果有帮助,我使用ScalaTest @Network
标签标记测试。
请参阅使用共享源的其他测试配置。这允许您在重用测试源的同时,在FunTest
配置中提出可选的"测试"任务。
让fun:test
使用使用testOptions in FunTest := Seq(Tests.Filter(itFilter))
定义的任何过滤器后,您可以重新连接
test in assembly := test in FunTest
Eugene是对的(显然),但这还不够让我让它工作-我有一个build.scala
文件。我像这样定义baseSettings
:
val baseSettings = Defaults.defaultSettings ++
buildSettings ++
Seq(sbt.Keys.test in assembly := {})
您可以用ignore
标记您的测试,那么sbt/ScalaTest将不会运行它们。请参阅ScalaTest文档中的标记测试。
为了完整起见,如果您想跳过汇编任务中的所有测试或只运行特定的测试,您可以使用test in assembly := { ... }
根据@eugene-yokata的回复,我发现了如何使用ScalaTest的标志:
lazy val UnitTest = config("unit") extend (Test)
lazy val companyApp = (project in file("applications/"))
.assembly("com.company.app", "app.jar")
.configs(UnitTest)
.settings(
inConfig(UnitTest)(Defaults.testTasks),
UnitTest / testOptions ++= Seq(
Tests.Argument(
TestFrameworks.ScalaTest,
"-l",
"com.company.tag.HttpIntegrationTest"
),
Tests.Argument(
TestFrameworks.ScalaTest,
"-l",
"com.company.tag.EsIntegrationTest"
)
),
test in assembly := (UnitTest / test).value
)