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

时间:2012-12-12 19:26:42

标签: scala sbt build-tools

有没有办法用SBT构建测试而不运行它们?

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

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

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

4 个答案:

答案 0 :(得分:150)

只需使用test:compile命令。

答案 1 :(得分:16)

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

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

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

答案 2 :(得分:2)

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

使用Test / compile

(docs)

答案 3 :(得分:0)

我们有一个build.sbt文件,用于多个项目。 sbt test:compile进行了每个项目的测试编译,耗时超过30分钟。

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

sbt xyz/test:compile