自定义sbt任务按标记运行测试

时间:2016-03-08 09:22:27

标签: scala sbt scalatest

我想通过标记执行一些sbt自定义任务来运行测试(scalatest)。例如:现在我可以在sbt控制台中运行它:

sbt test-only -- -n UnitTests

我想像

这样做
sbt test-unit // or something like that

我也希望通过排除测试

来做同样的事情

sbt test-only - -l ExternalTests

为:

sbt test-exclude-external

为了完成我正在尝试创建一个自定义的sbt任务...但我不知道如何做-- -l的东西

val testUnit = taskKey[Unit]("Launch unit tests")
testUnit := {
  // sbt test-only -- -n UnitTests
  //(test in Test)
}

如果我可以在自定义sbt任务中按命名空间运行测试,那将非常有用:

sbt testOnly integration.actors.*
你能帮帮我们吗?我是sbt的新手:(

2 个答案:

答案 0 :(得分:2)

fullInput与“in Test”不兼容。我终于这样做了:

val unit = taskKey[Unit]("Launch unit tests")
unit := {
  (testOnly in Test).toTask(s" com.trololo.unit.*").value
}

答案 1 :(得分:0)

您应该可以使用此SO question中的fullInput。 此外,可能重复this