Junit 如何并行运行测试,但获得整齐有序的测试输出?

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

我正在使用sbt和JUnit为一个大型Scala项目运行测试。我支持测试,并使用
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)