我一直在开发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在测试上下文中运行,从而帮助我吗?
发布于 2014-02-07 11:01:42
我认为任务名实际上是ScctTest。尝试:
parallelExecution in Test := false
parallelExecution in ScctTest := false发布于 2014-02-07 11:37:27
您是否考虑过为每个测试创建一个新的数据库,并将创建的db名称作为每个测试的随机名称,这样它们就不会发生冲突。只要你没有绝对大量的需要数据库的测试,就能工作得很好。
https://stackoverflow.com/questions/21624077
复制相似问题