Junit 如何并行运行测试,但获得整齐有序的测试输出?
我正在使用sbt和JUnit为一个大型Scala项目运行测试。我支持测试,并使用Junit 如何并行运行测试,但获得整齐有序的测试输出?,junit,sbt,parallel-testing,Junit,Sbt,Parallel Testing,我正在使用sbt和JUnit为一个大型Scala项目运行测试。我支持测试,并使用testGrouping in Test定义如何在JVM中对测试进行分组 这些测试是并行运行的,但它们的输出是交错的,因此很难读取。我在Test中设置了logBuffered:=true,但这似乎没有起到任何作用 下面是我的设置中的一个片段: 测试中的并行执行:=true, 测试中的testForkedParallel:=false, 全局中的concurrentRestrictions:=Seq(Tags.limi
testGrouping in Test
定义如何在JVM中对测试进行分组
这些测试是并行运行的,但它们的输出是交错的,因此很难读取。我在Test中设置了logBuffered:=true
,但这似乎没有起到任何作用
下面是我的设置中的一个片段:
测试中的并行执行:=true,
测试中的testForkedParallel:=false,
全局中的concurrentRestrictions:=Seq(Tags.limit(Tags.ForkedTestGroup,8)),
测试中的testGrouping:=(测试中的definedTests,测试中的javaOptions)映射groupBySuite,
测试中的测试分组:={
val original:Seq[Tests.Group]=(Test中的testGrouping).value
original.map{group=>
val forkOptions=forkOptions(
bootJars=Nil,
javaHome=javaHome.value,
connectInput=connectInput.value,
outputStrategy=outputStrategy.value,
runJVMOptions=(测试中的javaOptions).value,
workingDirectory=Some(baseDirectory.value),
envVars=envVars.value
)
group.copy(runPolicy=Tests.SubProcess(forkOptions))
}
},
测试中缓冲的日志:=真,
如何保持测试并行运行,但以某种方式对输出进行缓冲并按顺序显示以使其可读?在分叉的JVM选项中是否有一些设置需要提供给outputStrategy
有,但我希望保持测试并行运行。请参阅
测试中的并行执行控制测试是否映射到单独的任务。要限制所有项目中并发执行的测试的数量,请使用:
concurrentRestrictions in Global += Tags.limit(Tags.Test, 1)