From b3d2fb88cd37730c8f0495612448fe85cc93f4de Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 28 Feb 2013 19:05:42 -0600 Subject: have the sbt reporter check the exit code too --- .../scala/org/perl8/test/sbt/SBTReporter.scala | 34 ++++++++++++++++++---- src/main/scala/org/perl8/test/tap/Consumer.scala | 2 +- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/main/scala/org/perl8/test/sbt/SBTReporter.scala b/src/main/scala/org/perl8/test/sbt/SBTReporter.scala index 1160c2e..148c380 100644 --- a/src/main/scala/org/perl8/test/sbt/SBTReporter.scala +++ b/src/main/scala/org/perl8/test/sbt/SBTReporter.scala @@ -32,7 +32,23 @@ class SBTReporter ( eventHandler.handle(event) } case EndEvent(result) => { - if (result.success) { + val testsPassed = result.success + val correctCode = result.exitCode == 0 + val event = new testing.Event { + val testName: String = "exit code is 0" + val description: String = "exit code is 0" + val result: testing.Result = + if (correctCode) { + testing.Result.Success + } + else { + testing.Result.Failure + } + val error: Throwable = null + } + eventHandler.handle(event) + + if (testsPassed && correctCode) { logInfo("PASS " + testName) } else { @@ -41,10 +57,18 @@ class SBTReporter ( !t.passed && !t.directive.isDefined } - logError( - "FAIL " + testName + " " + - "(failed " + failed + "/" + results + ")" - ) + val errors = Seq( + (if (testsPassed) + None + else + Some("failed " + failed + "/" + results)), + (if (correctCode) + None + else + Some("non-zero exit code: " + result.exitCode)) + ).flatten.mkString("(", ", ", ")") + + logError("FAIL " + testName + " " + errors) } } case _ => () diff --git a/src/main/scala/org/perl8/test/tap/Consumer.scala b/src/main/scala/org/perl8/test/tap/Consumer.scala index c108b6d..73a801d 100644 --- a/src/main/scala/org/perl8/test/tap/Consumer.scala +++ b/src/main/scala/org/perl8/test/tap/Consumer.scala @@ -122,7 +122,7 @@ object Consumer { val testsPassed = fails == 0 val success = - matchesPlan && testsPassed + results.length > 0 && fails == 0 && matchesPlan val exitCode = if (!matchesPlan || results.length == 0) { -- cgit v1.2.3-54-g00ecf