sbt/sbt — pull request #1119 by backuitist (2014-02-14 17:44:35+00:00)
Title: Multi VM forked test & test output segregation

Currently SBT is unable to run tests in parallel while providing a meaningful trace:
test outputs are interleaved. This is especially annoying when a test pass on
your machine but breaks on a continuous integration server.

This commit allows running forked tests in multiple VM, enabling test output segregation.
In order to report test outputs a refactoring of `TestReportListener` was necessary,
breaking compatibility with 0.13.
In addition SBT provides now a reference implementation of the new `TestReportListener`,
formatting test reports in JUnit XML.

Those features are disabled by default and are activated with the following settings:
* `testNumberForkedJvm` : controls how many VM are used to run the tests
Note: this is reduced if there are fewer tests than vm
Note: forking must be enabled (`fork in test := true`)
* `testHideSuccessfulOutput` : when set to true, do not print tests output on the console
Note: this does not work in non-forked mode
* `testReportJUnitXml` : when set to true produce reports in the JUnit XML format
Note: in non-forked mode test outputs are not captured

Meaningful (debug level) logs are produced for each of these features.