让测试仅在 SBT 控制台外工作

Getting test-only to work outside SBT console

我正在使用 Specs2 进行测试,包括最新的 Play、Scala 和 SBT。

在 sbt console 中,效果很好,运行仅在 UserServiceSpec:

中测试
[my-project] $ test-only services.UserServiceSpec

外部 sbt 控制台,在项目根目录中,这工作:

$ sbt test-only services.UserServiceSpec      

这运行s 所有测试。 (testOnly 也是如此。)

test-only 应该如何在 sbt 控制台之外工作?

后续问题:使用,如何在sbt控制台外的命令行上只执行标记测试?

$ sbt test-only -- include unit

以上再次尝试执行 all 测试(而 test-only -- include unit 在 sbt 控制台中工作正常)。

基本上,我想在 CI 服务器上 运行 所有 单元测试 ,并且 Specs2 标签似乎是一个很好的工具来分离不同的各种测试。在这种情况下我无法使用 sbt 控制台,对吗?

Sbt 将两个参数视为两个单独的命令。你应该把它标记为一个。

尝试:sbt "testOnly services.UserServiceSpec"