5
我正在使用sbt和JUnit來運行大型Scala項目的測試。我是forking multiple JVMs進行測試,並定義如何使用testGrouping in Test
將測試分組到JVM中。如何並行運行測試,但得到整齊有序的測試輸出?
測試並行運行,但是它們的輸出相互交錯,因此很難通讀。我已經設置了logBuffered in Test := true
,但這似乎沒有做任何事情。
下面是一個片段我settings
:
parallelExecution in Test := true,
testForkedParallel in Test := false,
concurrentRestrictions in Global := Seq(Tags.limit(Tags.ForkedTestGroup, 8)),
testGrouping in Test := (definedTests in Test, javaOptions in Test) map groupBySuite,
testGrouping in Test := {
val original: Seq[Tests.Group] = (testGrouping in Test).value
original.map { group =>
val forkOptions = ForkOptions(
bootJars = Nil,
javaHome = javaHome.value,
connectInput = connectInput.value,
outputStrategy = outputStrategy.value,
runJVMOptions = (javaOptions in Test).value,
workingDirectory = Some(baseDirectory.value),
envVars = envVars.value
)
group.copy(runPolicy = Tests.SubProcess(forkOptions))
}
},
logBuffered in Test := true,
我怎樣才能保持我的測試並行運行,但有輸出某種程度上被緩衝和顯示順序,使其可讀?是否可能需要在分叉的JVM選項中向outputStrategy
提供一些設置?
有a similar question here,但我期待讓我的測試並行運行。