summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2016-05-20 08:20:41 +0200
committerLukas Rytz <lukas.rytz@gmail.com>2016-05-20 16:44:21 +0200
commitd9ce4dc1eeb351a52e98c6c0fa1551a5cc3b87f5 (patch)
tree2b3efea4dc7779e85a09f036e1b08bcd8005a385
parent5d5a6aa154ab533dca4a0e589a7ae67c3c037d61 (diff)
downloadscala-d9ce4dc1eeb351a52e98c6c0fa1551a5cc3b87f5.tar.gz
scala-d9ce4dc1eeb351a52e98c6c0fa1551a5cc3b87f5.tar.bz2
scala-d9ce4dc1eeb351a52e98c6c0fa1551a5cc3b87f5.zip
Better abstraction for JUnit run tests
-rw-r--r--test/junit/scala/issues/RunTest.scala16
-rw-r--r--test/junit/scala/tools/testing/RunTesting.scala17
2 files changed, 22 insertions, 11 deletions
diff --git a/test/junit/scala/issues/RunTest.scala b/test/junit/scala/issues/RunTest.scala
index 3ebdc8a72f..0686d73d9b 100644
--- a/test/junit/scala/issues/RunTest.scala
+++ b/test/junit/scala/issues/RunTest.scala
@@ -1,13 +1,11 @@
package scala.issues
+import org.junit.Assert._
+import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
-import org.junit.{AfterClass, BeforeClass, Test}
-import org.junit.Assert._
-import scala.reflect.runtime._
-import scala.tools.reflect.ToolBox
-import scala.tools.testing.ClearAfterClass
+import scala.tools.testing.RunTesting
object RunTest {
class VC(val x: Any) extends AnyVal
@@ -15,12 +13,8 @@ object RunTest {
}
@RunWith(classOf[JUnit4])
-class RunTest extends ClearAfterClass {
- val toolBox = cached("toolbox", () => universe.runtimeMirror(getClass.getClassLoader).mkToolBox())
-
- def run[T](code: String): T = {
- toolBox.eval(toolBox.parse(code)).asInstanceOf[T]
- }
+class RunTest extends RunTesting {
+ import runner._
@Test
def classOfValueClassAlias(): Unit = {
diff --git a/test/junit/scala/tools/testing/RunTesting.scala b/test/junit/scala/tools/testing/RunTesting.scala
new file mode 100644
index 0000000000..1320db4230
--- /dev/null
+++ b/test/junit/scala/tools/testing/RunTesting.scala
@@ -0,0 +1,17 @@
+package scala.tools.testing
+
+import scala.reflect.runtime._
+import scala.tools.reflect.ToolBox
+
+trait RunTesting extends ClearAfterClass {
+ def compilerArgs = "" // to be overridden
+ val runner = cached("toolbox", () => Runner.make(compilerArgs))
+}
+
+class Runner(val toolBox: ToolBox[universe.type]) {
+ def run[T](code: String): T = toolBox.eval(toolBox.parse(code)).asInstanceOf[T]
+}
+
+object Runner {
+ def make(compilerArgs: String) = new Runner(universe.runtimeMirror(getClass.getClassLoader).mkToolBox(options = compilerArgs))
+}