2

我一直在研究 Scala 应用程序。为了正确地做到这一点,我希望我的代码的内核完全被测试覆盖。为此,我使用SBT 的 SCCT 插件

不幸的是,我的测试依赖于内存数据库(h2)。因此,我的测试不能并行运行。但是,sbt 默认并行运行所有任务。

为了解决这个问题,我修改build.sbt了文件以禁用测试的并行执行:

parallelExecution in Test := false

构建配置的问题在于,要生成代码覆盖率,我需要运行sbt scct:test而不是sbt test.

我试图禁用并行执行,scct:test但下面的代码无法编译:

parallelExecution in scct:test := false

scct:test任何人都可以通过设置标志或scct:test在测试上下文中运行来禁用并行执行来帮助我吗?

4

2 回答 2

3

我认为任务名称实际上是ScctTest. 尝试:

parallelExecution in Test := false
parallelExecution in ScctTest := false
于 2014-02-07T11:01:42.920 回答
0

您是否考虑过为每个测试创建一个新数据库并将创建的数据库名称设置为每个测试的随机名称,这样它们就不会发生冲突。只要您没有绝对大量需要数据库的测试,就可以很好地工作。

于 2014-02-07T11:37:27.533 回答