diff --git a/notes/0.13.14/junit_xml_imp.md b/notes/0.13.14/junit_xml_imp.md new file mode 100644 index 000000000..06a0da2e7 --- /dev/null +++ b/notes/0.13.14/junit_xml_imp.md @@ -0,0 +1,7 @@ +### Improvements + +- XML generated by JUnitXmlTestsListener now correctly flags ignored, skipped and pending tests. [#2854][2854]/[#2198][2198] by [@ashleymercer][@ashleymercer] + + [2854]: https://github.com/sbt/sbt/pull/2854 + [2198]: https://github.com/sbt/sbt/issues/2198 + [@ashleymercer]: https://github.com/ashleymercer diff --git a/testing/src/main/scala/sbt/JUnitXmlTestsListener.scala b/testing/src/main/scala/sbt/JUnitXmlTestsListener.scala index 8c5e48ab7..e4797b754 100644 --- a/testing/src/main/scala/sbt/JUnitXmlTestsListener.scala +++ b/testing/src/main/scala/sbt/JUnitXmlTestsListener.scala @@ -62,7 +62,10 @@ class JUnitXmlTestsListener(val outputDir: String) extends TestsListener { val (errors, failures, tests) = (count(TStatus.Error), count(TStatus.Failure), events.size) - val result = + /** Junit XML reports don't differentiate between ignored, skipped or pending tests */ + val ignoredSkippedPending = count(TStatus.Ignored) + count(TStatus.Skipped) + count(TStatus.Pending) + + val result = { properties } { for (e <- events) yield case TStatus.Failure if (e.throwable.isDefined) => { trace } case TStatus.Failure => - case TStatus.Skipped => + case TStatus.Ignored | TStatus.Skipped | TStatus.Pending => case _ => {} } } @@ -122,7 +125,7 @@ class JUnitXmlTestsListener(val outputDir: String) extends TestsListener { * We map one group to one Testsuite, so for each Group * we create an XML like this: * - * + * * * * ...