aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-28 19:05:42 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-28 19:05:42 -0600
commitb3d2fb88cd37730c8f0495612448fe85cc93f4de (patch)
treeb7370bc0ebbc85bd36c78bbc8daa64539e35cd17
parent15c2e6a55f11c4978f7da5c9bc53498b5feb1dd3 (diff)
downloadscala-test-more-b3d2fb88cd37730c8f0495612448fe85cc93f4de.tar.gz
scala-test-more-b3d2fb88cd37730c8f0495612448fe85cc93f4de.zip
have the sbt reporter check the exit code too
-rw-r--r--src/main/scala/org/perl8/test/sbt/SBTReporter.scala34
-rw-r--r--src/main/scala/org/perl8/test/tap/Consumer.scala2
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) {