X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fscala%2FSbtTapReporting.scala;h=14b0576c2e742ff46d06f701ea44539537ec3105;hb=9435e96901b26a2c52e40a3ea7a993634b746c8b;hp=966e3a2a46a5feeb93a3049908377871487c59db;hpb=5d08ccef936e03b0dfa6a0ba5698967d6e05cdc7;p=chaz%2Fsbt-tap diff --git a/src/main/scala/SbtTapReporting.scala b/src/main/scala/SbtTapReporting.scala index 966e3a2..14b0576 100644 --- a/src/main/scala/SbtTapReporting.scala +++ b/src/main/scala/SbtTapReporting.scala @@ -5,7 +5,7 @@ import org.scalatools.testing.{Event => TEvent, Result => TResult} import java.util.concurrent.atomic.AtomicInteger object SbtTapReporting extends Plugin { - lazy val tapListener = new SbtTapListener + def apply() = new SbtTapListener } /** @@ -23,7 +23,9 @@ class SbtTapListener extends TestsListener { override def doInit { new File("test-results").mkdirs() - fileWriter = new FileWriter("test-results/test.tap") + fileWriter = new FileWriter( + scala.util.Properties.envOrElse("SBT_TAP_OUTPUT", "test-results/test.tap") + ) } def startGroup(name: String) {} @@ -34,7 +36,10 @@ class SbtTapListener extends TestsListener { case TResult.Success => writeTapFields("ok", testId.incrementAndGet(), "-", e.testName()) case TResult.Error | TResult.Failure => writeTapFields("not ok", testId.incrementAndGet(), "-", e.testName()) - writeTapFields(stackTraceForError(e.error())) + // According to the TAP spec, as long as there is any kind of whitespace, this output should belong to the + // the test that failed and it should get displayed in the UI. + // TODO:It would be nice if we could report the exact line in the test where this happened. + writeTapFields(" ", stackTraceForError(e.error())) case TResult.Skipped => // it doesn't look like this framework distinguishes between pending and ignored. writeTapFields("ok", testId.incrementAndGet(), e.testName(), "#", "skip", e.testName())