如何使用包含子项目的类启动scala REPL?

时间:2017-12-01 12:44:38

标签: sbt

我有一个项目admp,汇总了3个子项目:

lazy val admp = (project in file("."))
  .aggregate(common, regression, integration)
  .settings(commonSettings)

当我执行test:console命令时,不包括子项目中的测试类:

sbt:admp> test:console
[info] Starting scala interpreter...
Welcome to Scala 2.11.9 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_151).
Type in expressions for evaluation. Or try :help.

scala> import me.enreach.qa.Aerospike._
<console>:11: error: not found: value me
       import me.enreach.qa.Aerospike._
              ^

只有当我运行common/test:console命令时,它才会加载类:

sbt:admp> common/test:console
[info] Starting scala interpreter...
Welcome to Scala 2.11.9 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_151).
Type in expressions for evaluation. Or try :help.

scala> import me.enreach.qa.Aerospike._
import me.enreach.qa.Aerospike._
import me.enreach.qa.Aerospike._

有没有办法从所有子项目加载类?

1 个答案:

答案 0 :(得分:1)

您可以通过在测试范围中添加子项目的依赖项来实现它。将其添加到您的admp项目定义中:

.dependsOn(
  common      % "test->test", 
  regression  % "test->test", 
  integration % "test->test"
)

这样您就可以说admp的测试配置取决于每个子项目的测试配置。您可以在关于configurations mapping的sbt文档中阅读更多内容。

现在,当您运行admp/test:console时,您应该可以访问所有子项目&#39;测试来源。