【发布时间】:2016-07-08 21:02:11
【问题描述】:
我在主代码树和测试代码树中都定义了一个包对象,如下所示。当我使用sbt run 执行程序时,主代码树中的那个生效。而当我运行测试用例 (sbt test) 时,测试代码树中定义的包对象生效。例如
src/main/scala/com/example/package.scala
package object core {
val foo = "Hello World"
}
src/test/scala/com/example/package.scala
package object core {
val foo = "Goodbye World"
}
在sbt run 上,com.example.core.foo 的值为Hello World。在sbt test 上,com.example.core.foo 的值为Goodbye World
这只是 SBT 的一个怪癖还是一个定义明确的 scala/sbt 特征?我目前通过在其相应的包对象中定义用于生产和测试的模块绑定来将此行为用于依赖注入。这是一个可取的方法吗?
【问题讨论】: