aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/scala/org/perl8/test/sbt/SBTReporter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/org/perl8/test/sbt/SBTReporter.scala')
-rw-r--r--src/main/scala/org/perl8/test/sbt/SBTReporter.scala34
1 files changed, 29 insertions, 5 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 _ => ()