From 5be2c5aea4527cf637948e6bf2e4c56e3273fbd9 Mon Sep 17 00:00:00 2001 From: Nikolay Tatarinov <5min4eq.unity@gmail.com> Date: Thu, 1 Feb 2018 22:07:39 +0300 Subject: WIP: Scala js testing (#119) fixes #102. Use scala js testing framework to launch tests --- scalalib/src/mill/scalalib/ScalaModule.scala | 4 ++-- scalalib/src/mill/scalalib/ScalaWorkerApi.scala | 2 +- scalalib/src/mill/scalalib/TestRunner.scala | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'scalalib/src') diff --git a/scalalib/src/mill/scalalib/ScalaModule.scala b/scalalib/src/mill/scalalib/ScalaModule.scala index b79b32dc..8f635906 100644 --- a/scalalib/src/mill/scalalib/ScalaModule.scala +++ b/scalalib/src/mill/scalalib/ScalaModule.scala @@ -323,7 +323,7 @@ trait TestModule extends ScalaModule with TaskModule { val outputPath = T.ctx().dest/"out.json" mill.scalalib.ScalaWorkerApi.scalaWorker().apply( - testFramework(), + TestRunner.framework(testFramework()), runClasspath().map(_.path), Agg(compile().classes.path), args @@ -334,4 +334,4 @@ trait TestModule extends ScalaModule with TaskModule { TestModule.handleResults(doneMsg, results) } -} \ No newline at end of file +} diff --git a/scalalib/src/mill/scalalib/ScalaWorkerApi.scala b/scalalib/src/mill/scalalib/ScalaWorkerApi.scala index 8ff45a48..21ba45e1 100644 --- a/scalalib/src/mill/scalalib/ScalaWorkerApi.scala +++ b/scalalib/src/mill/scalalib/ScalaWorkerApi.scala @@ -52,7 +52,7 @@ trait ScalaWorkerApi { upstreamCompileOutput: Seq[CompilationResult]) (implicit ctx: mill.util.Ctx): CompilationResult - def apply(frameworkName: String, + def apply(frameworkInstance: ClassLoader => sbt.testing.Framework, entireClasspath: Agg[Path], testClassfilePath: Agg[Path], args: Seq[String]) diff --git a/scalalib/src/mill/scalalib/TestRunner.scala b/scalalib/src/mill/scalalib/TestRunner.scala index 025364be..e7521989 100644 --- a/scalalib/src/mill/scalalib/TestRunner.scala +++ b/scalalib/src/mill/scalalib/TestRunner.scala @@ -2,6 +2,11 @@ package mill.scalalib import mill.util.JsonFormatters._ object TestRunner { + def framework(frameworkName: String)(cl: ClassLoader): sbt.testing.Framework = { + cl.loadClass(frameworkName) + .newInstance() + .asInstanceOf[sbt.testing.Framework] + } case class Result(fullyQualifiedName: String, selector: String, -- cgit v1.2.3