aboutsummaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-03-30 10:47:28 -0400
committerChristopher Vogt <oss.nsp@cvogt.org>2017-03-30 11:03:55 -0400
commit3446af59a17bdef8730008a61eade7937b9cda56 (patch)
treec3785086e3a9985abde78477a3b4bd997b512273 /libraries
parent249b4a04bac50fcb9510e71ad142fcabf7b7f61d (diff)
downloadcbt-3446af59a17bdef8730008a61eade7937b9cda56.tar.gz
cbt-3446af59a17bdef8730008a61eade7937b9cda56.tar.bz2
cbt-3446af59a17bdef8730008a61eade7937b9cda56.zip
scalatest plugin for 2.12 (and move most code from plugin into library)
Diffstat (limited to 'libraries')
-rw-r--r--libraries/scalatest-runner/Runner.scala37
-rw-r--r--libraries/scalatest-runner/build/build.scala8
2 files changed, 45 insertions, 0 deletions
diff --git a/libraries/scalatest-runner/Runner.scala b/libraries/scalatest-runner/Runner.scala
new file mode 100644
index 0000000..e2eaf87
--- /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..781e314
--- /dev/null
+++ b/libraries/scalatest-runner/build/build.scala
@@ -0,0 +1,8 @@
+import cbt._
+
+class Build(val context: Context) extends BaseBuild{
+ override def dependencies = super.dependencies ++
+ Resolver( mavenCentral ).bind(
+ ScalaDependency("org.scalatest","scalatest", if(scalaMajorVersion == "2.12") "3.0.1" else "2.2.6")
+ )
+}