如何仅在多模块构建中在单个项目中执行测试?

时间:2014-02-06 10:31:38

标签: sbt

我有一个多模块构建,并希望独立地为不同的子项目运行测试。

有没有办法在sbt中执行此操作,例如如果我的多项目构建包含corecommons项目,我只想在test项目中运行commons

6 个答案:

答案 0 :(得分:48)

运行sbt commons/test。请参阅Scopes中的详细说明。

您也可以使用来自sbt的两个命令的组合 - 使用project更改当前项目并在之后执行test

sbt "project commons" test

您也可以使用

sbt "; project commons; test"

答案 1 :(得分:9)

您正在以交互模式运行sbt

> project commons
> test

您可以使用:

切换回core
> project core

答案 2 :(得分:6)

没关系,我偶然发现了这个: How to execute package for one submodule only on Jenkins?

sbt "project core" test

答案 3 :(得分:1)

另一种方法。

进入SBT交互模式

> sbt

sbt:core>公用/测试

无需在项目之间切换。

答案 4 :(得分:1)

还有另一种为特定模块打开sbt的方法。 转到模块目录的位置,然后键入“ sbt”命令。

sbt然后将仅在该模块的交互模式下打开

答案 5 :(得分:0)

如果仅使用git,仅对已删除文件中已添加,修改的子模块运行sbt测试:

 while read -r proj ; do sbt "project $proj" test ; \
 done < <(git status --porcelain | cut -c 3- | cut -d/ -f1