2014-12-12 4 views
5

Я использую sbt и JUnit для запуска тестов для большого проекта Scala. Я тестирую forking multiple JVMs и определяю, как тесты должны быть сгруппированы в JVM с использованием testGrouping in Test.Как я могу запускать тесты параллельно, но получить аккуратно упорядоченный вывод теста?

Тестирование выполняется параллельно, но их выход чередуется, что затрудняет его чтение. Я установил 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, 

Как я могу держать мои тесты работает параллельно, но есть выход как-то буферизация и отображаются в порядке, так что читаем? Может быть, некоторые настройки мне нужно подавать до outputStrategy в разветвленных вариантах JVM?

Существует a similar question here, но я хочу, чтобы мои тесты работали параллельно.

ответ

-1

См http://www.scala-sbt.org/1.x/docs/Parallel-Execution.html

parallelExecution in Test управления, являются ли тесты отображаются на отдельные задачи. Чтобы ограничить количество одновременно выполняемых тестов во всех проектах, используйте:

concurrentRestrictions in Global += Tags.limit(Tags.Test, 1) 
Смежные вопросы