diff options
author | Jan Christopher Vogt <oss.nsp@cvogt.org> | 2017-03-30 11:44:19 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-30 11:44:19 -0400 |
commit | 05d9dd8128b21eb64ffe6206af624237ac504b89 (patch) | |
tree | 0d0778cf588b8b5afbc4de6c6175800e246086e7 /libraries | |
parent | 249b4a04bac50fcb9510e71ad142fcabf7b7f61d (diff) | |
parent | 3e37741a3d937a9d4c6ce85691226ef1197ebab6 (diff) | |
download | cbt-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.scala | 37 | ||||
-rw-r--r-- | libraries/scalatest-runner/build/build.scala | 13 | ||||
-rw-r--r-- | libraries/scalatest-runner/build/build/build.scala | 5 |
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 +} |