如何使用 SBT 编译测试而不运行它们



有没有办法在不运行 SBT 的情况下构建测试?

我自己的用例是使用 scalac 插件对测试代码运行静态分析。另一个可能的用例是使用与 SBT 内置的运行器不同的运行器运行部分或全部测试代码。

理想情况下,这个问题的解决方案适用于任何SBT项目。例如,Maven 有一个 test-compile 命令,该命令可用于编译测试而不运行它们。如果SBT有同样的东西,那就太好了。

不太理想但仍然非常有用的解决方案是涉及修改项目构建文件的解决方案。

只需使用 Test / compile 命令即可。

Test/compile用于编译单元测试。

要编译集成测试,您可以使用 IntegrationTest/compile

在每次文件更改时持续编译的另一个提示:~Test/compile

我们有一个用于多个项目的build.sbt文件。 做sbt test:compile为每个项目编译测试,花了 30 多分钟。

发现我只能通过执行以下操作来编译名为 xyz 的特定项目的测试:

sbt xyz/test:compile

使用 sbt 版本 1.5.0 及更高版本的test:compile返回弃用警告。

使用Test / compile .

(文档)

最新更新