summaryrefslogtreecommitdiff
path: root/scalalib
diff options
context:
space:
mode:
Diffstat (limited to 'scalalib')
-rw-r--r--scalalib/src/mill/scalalib/JavaModule.scala22
1 files changed, 13 insertions, 9 deletions
diff --git a/scalalib/src/mill/scalalib/JavaModule.scala b/scalalib/src/mill/scalalib/JavaModule.scala
index 0a396a53..4b90331c 100644
--- a/scalalib/src/mill/scalalib/JavaModule.scala
+++ b/scalalib/src/mill/scalalib/JavaModule.scala
@@ -307,18 +307,22 @@ trait TestModule extends JavaModule with TaskModule {
envArgs = forkEnv(),
mainArgs =
Seq(testFrameworks().length.toString) ++
- testFrameworks() ++
- Seq(runClasspath().length.toString) ++
- runClasspath().map(_.path.toString) ++
- Seq(args.length.toString) ++
- args ++
- Seq(outputPath.toString, T.ctx().log.colored.toString, compile().classes.path.toString, T.ctx().home.toString),
+ testFrameworks() ++
+ Seq(runClasspath().length.toString) ++
+ runClasspath().map(_.path.toString) ++
+ Seq(args.length.toString) ++
+ args ++
+ Seq(outputPath.toString, T.ctx().log.colored.toString, compile().classes.path.toString, T.ctx().home.toString),
workingDir = forkWorkingDir
)
- val jsonOutput = ujson.read(outputPath.toIO)
- val (doneMsg, results) = upickle.default.readJs[(String, Seq[TestRunner.Result])](jsonOutput)
- TestModule.handleResults(doneMsg, results)
+ try {
+ val jsonOutput = ujson.read(outputPath.toIO)
+ val (doneMsg, results) = upickle.default.readJs[(String, Seq[TestRunner.Result])](jsonOutput)
+ TestModule.handleResults(doneMsg, results)
+ }catch{case e: Throwable =>
+ Result.Failure("Test reporting failed: " + e)
+ }
}
def testLocal(args: String*) = T.command{