106

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

我自己的用例是使用 scalac 插件对测试代码运行静态分析。另一个可能的用例是使用单独的运行程序运行部分或全部测试代码,而不是内置在 SBT 中的运行程序。

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

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

4

4 回答 4

171

只需使用test:compile命令。

于 2012-12-12T19:37:14.060 回答
24

test:compile适用于编译单元测试。

要编译集成测试,您可以使用it:compile.

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

于 2017-01-30T10:55:57.490 回答
10

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

我发现我只能为xyz通过以下方式命名的特定项目编译测试:

sbt xyz/test:compile
于 2019-03-19T22:10:20.730 回答
5

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

使用Test / compile.

文档

于 2021-04-30T22:58:47.720 回答