diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-02-28 18:05:09 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-02-28 18:05:09 -0600 |
commit | 5d792755f90d871ba51cdf16aae3961079ce81c2 (patch) | |
tree | 14594dd09d3ac0c0d4fb782f426fa558baf1f863 /src/main/scala/org/perl8 | |
parent | 650cfdf8fd45287f956c46cd3f00dab6cb896ad3 (diff) | |
download | scala-test-more-5d792755f90d871ba51cdf16aae3961079ce81c2.tar.gz scala-test-more-5d792755f90d871ba51cdf16aae3961079ce81c2.zip |
convert the sbt reporter to use streaming
Diffstat (limited to 'src/main/scala/org/perl8')
-rw-r--r-- | src/main/scala/org/perl8/test/sbt/SBTReporter.scala | 65 |
1 files changed, 39 insertions, 26 deletions
diff --git a/src/main/scala/org/perl8/test/sbt/SBTReporter.scala b/src/main/scala/org/perl8/test/sbt/SBTReporter.scala index b9dcdee..c92544d 100644 --- a/src/main/scala/org/perl8/test/sbt/SBTReporter.scala +++ b/src/main/scala/org/perl8/test/sbt/SBTReporter.scala @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream import org.scalatools.testing import org.perl8.test.harness.{Reporter,SummarizedTests} +import org.perl8.test.tap._ import org.perl8.test.Test class SBTReporter ( @@ -12,36 +13,48 @@ class SBTReporter ( eventHandler: testing.EventHandler ) extends Reporter with SummarizedTests { def run (testName: String): Int = { - val test = loader.loadClass(testName).newInstance.asInstanceOf[Test] - val result = runOneTest(test, e => ()) - - result.results.foreach { r => - val event = new testing.Event { - val testName: String = r.description - val description: String = r.description - val result: testing.Result = - if (r.passed) { - testing.Result.Success - } - else if (r.directive.isDefined) { - testing.Result.Skipped - } - else { - testing.Result.Failure + val cb = (e: TAPEvent) => e match { + case ResultEvent(r) => { + val event = new testing.Event { + val testName: String = r.description + val description: String = r.description + val result: testing.Result = + if (r.passed) { + testing.Result.Success + } + else if (r.directive.isDefined) { + testing.Result.Skipped + } + else { + testing.Result.Failure + } + val error: Throwable = null + } + eventHandler.handle(event) + } + case EndEvent(result) => { + if (result.success) { + logInfo("PASS " + testName) + } + else { + val results = result.results.length + val failed = result.results.count { t => + !t.passed && !t.directive.isDefined } - val error: Throwable = null + + logError( + "FAIL " + testName + " " + + "(failed " + failed + "/" + results + ")" + ) + } } - eventHandler.handle(event) + case _ => () } - if (result.success) { - logInfo("PASS " + testName) - 0 - } - else { - logError("FAIL " + testName) - 1 - } + runOneTest( + loader.loadClass(testName).newInstance.asInstanceOf[Test], + cb + ).exitCode } private def logDebug (msg: String) { |