我想配置sbt-assembly
为跳过特定的测试类。
有没有办法做到这一点?如果有帮助,我使用 ScalaTest@Network
标签标记了测试。
请参阅使用共享源的附加测试配置。FunTest
这允许您在重用测试源的同时在配置中提出替代“测试”任务。
在您fun:test
使用您定义的任何过滤器后testOptions in FunTest := Seq(Tests.Filter(itFilter))
,您可以重新连接
test in assembly := test in FunTest
尤金是对的(显然),但这对我来说还不足以让它工作——我有一个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
)