Many continuous integration servers (like Jenkins) accept JUnit XML as their de
facto standard for reporting test results. You can output a JUnit XML
file by simply using the junitxml argument:
testOnly org.acme.MySpec -- junitxml
The JUnit XML file corresponding to the specification will be
produced by default in the target/test-reports directory.
You can change this directory by passing the junit.outdir
argument like so:
testOnly org.acme.MySpec -- junitxml junit.outdir custom_xml_folder
This will output the xml files in the custom_xml_folder
in the top level project directory.
Remember
that using junitxml by itself will turn off the console
reporting. You need to add console to get it back.
sbt testsbt test does not take parameters so the default
behavior is to produce the JUnit XML files for all specifications in the
default output directory. In order to change the default output
directory of the junit xml files when running the tests with
test, add the following to your sbt build file:
Test / testOptions += Tests.Argument("junitxml", "junit.outdir", "custom_xml_folder")
This will suppress the console output, which may be what you want if this is a configuration for a build machine. To re-enable console output, use instead:
Test / testOptions ++= Seq(
Tests.Argument("junitxml", "junit.outdir", "custom_xml_folder"),
Tests.Argument("console")
)