【问题标题】:Disabling parallel execution for scct:test in SBT?在 SBT 中禁用 scct:test 的并行执行?
【发布时间】:2014-03-04 15:33:21
【问题描述】:

我一直在开发一个 Scala 应用程序。为了正确地做到这一点,我希望我的代码的内核完全被测试覆盖。为此,我使用the SCCT plugin for SBT

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

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

parallelExecution in Test := false

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

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

parallelExecution in scct:test := false

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

【问题讨论】:

标签: scala sbt code-coverage scct


【解决方案1】:

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

parallelExecution in Test := false
parallelExecution in ScctTest := false

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你说得对,我只有四个需要数据库的测试类。我一直想把他们分开。但是,我正在尝试学习一种可能有点棘手的新 ORM。直到最近,我还认为它只允许一个数据库会话。我已经在清点需要进行的更改。
    猜你喜欢
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2016-12-30
    • 2021-08-13
    相关资源
    最近更新 更多