aboutsummaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
authorJan Christopher Vogt <oss.nsp@cvogt.org>2017-03-30 11:44:19 -0400
committerGitHub <noreply@github.com>2017-03-30 11:44:19 -0400
commit05d9dd8128b21eb64ffe6206af624237ac504b89 (patch)
tree0d0778cf588b8b5afbc4de6c6175800e246086e7 /libraries
parent249b4a04bac50fcb9510e71ad142fcabf7b7f61d (diff)
parent3e37741a3d937a9d4c6ce85691226ef1197ebab6 (diff)
downloadcbt-05d9dd8128b21eb64ffe6206af624237ac504b89.tar.gz
cbt-05d9dd8128b21eb64ffe6206af624237ac504b89.tar.bz2
cbt-05d9dd8128b21eb64ffe6206af624237ac504b89.zip
Merge pull request #472 from cvogt/scalatest-for-2.12
Scalatest for 2.12
Diffstat (limited to 'libraries')
-rw-r--r--libraries/scalatest-runner/Runner.scala37
-rw-r--r--libraries/scalatest-runner/build/build.scala13
-rw-r--r--libraries/scalatest-runner/build/build/build.scala5
3 files changed, 55 insertions, 0 deletions
diff --git a/libraries/scalatest-runner/Runner.scala b/libraries/scalatest-runner/Runner.scala
new file mode 100644
index 0000000..a9927bb
--- /dev/null
+++ b/libraries/scalatest-runner/Runner.scala
@@ -0,0 +1,37 @@
+package cbt.scalatest
+
+import org.scalatest._
+
+import java.io.File
+
+object Runner {
+ def run( classpath: Array[File], classLoader: ClassLoader ): Unit = {
+ val suiteNames = classpath.map( d => discoverSuites( d, classLoader ) ).flatten
+ runSuites( suiteNames.map( loadSuite( _, classLoader ) ) )
+ }
+
+ def runSuites( suites: Seq[Suite] ) = {
+ def color: Boolean = true
+ def durations: Boolean = true
+ def shortstacks: Boolean = true
+ def fullstacks: Boolean = true
+ def stats: Boolean = true
+ def testName: String = null
+ def configMap: ConfigMap = ConfigMap.empty
+ suites.foreach {
+ _.execute( testName, configMap, color, durations, shortstacks, fullstacks, stats )
+ }
+ }
+
+ def discoverSuites( discoveryPath: File, classLoader: ClassLoader ): Seq[String] = {
+ classLoader
+ .loadClass( "org.scalatest.tools.SuiteDiscoveryHelper" )
+ .getMethod( "discoverSuiteNames", classOf[List[_]], classOf[ClassLoader], classOf[Option[_]] )
+ .invoke( null, List( discoveryPath.toString ++ "/" ), classLoader, None )
+ .asInstanceOf[Set[String]]
+ .toVector
+ }
+ def loadSuite( name: String, classLoader: ClassLoader ) = {
+ classLoader.loadClass( name ).getConstructor().newInstance().asInstanceOf[Suite]
+ }
+}
diff --git a/libraries/scalatest-runner/build/build.scala b/libraries/scalatest-runner/build/build.scala
new file mode 100644
index 0000000..0c07c7c
--- /dev/null
+++ b/libraries/scalatest-runner/build/build.scala
@@ -0,0 +1,13 @@
+package cbt_libraries_build.scalatest_runner
+import cbt._
+import cbt_internal._
+
+class Build(val context: Context) extends Library{
+ override def inceptionYear = 2017
+ override def description = "run scalatest tests from given directory and classpath (compatible with 2.12 and 2.11)"
+
+ override def dependencies = super.dependencies ++
+ Resolver( mavenCentral ).bind(
+ ScalaDependency("org.scalatest","scalatest", if(scalaMajorVersion == "2.12") "3.0.1" else "2.2.6")
+ )
+}
diff --git a/libraries/scalatest-runner/build/build/build.scala b/libraries/scalatest-runner/build/build/build.scala
new file mode 100644
index 0000000..18003ee
--- /dev/null
+++ b/libraries/scalatest-runner/build/build/build.scala
@@ -0,0 +1,5 @@
+package cbt_build.scalatest_runner.build
+import cbt._
+class Build(val context: Context) extends BuildBuild with CbtInternal{
+ override def dependencies = super.dependencies :+ cbtInternal.library
+}