aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-23 00:29:49 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-23 00:29:49 -0600
commit779de1657856ea5bfc4ca6b364669bd4ab10127f (patch)
tree45310a9edb441c14788d11ce6c46c8a8df3c26e9 /src/main
parent2fe79825e81feba3c29a86e0912d9d5598c5975b (diff)
downloadscala-test-more-779de1657856ea5bfc4ca6b364669bd4ab10127f.tar.gz
scala-test-more-779de1657856ea5bfc4ca6b364669bd4ab10127f.zip
integrate with sbt
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/org/perl8/test/sbt/Fingerprint.scala6
-rw-r--r--src/main/scala/org/perl8/test/sbt/Framework.scala13
-rw-r--r--src/main/scala/org/perl8/test/sbt/Runner.scala45
3 files changed, 64 insertions, 0 deletions
diff --git a/src/main/scala/org/perl8/test/sbt/Fingerprint.scala b/src/main/scala/org/perl8/test/sbt/Fingerprint.scala
new file mode 100644
index 0000000..cbe9403
--- /dev/null
+++ b/src/main/scala/org/perl8/test/sbt/Fingerprint.scala
@@ -0,0 +1,6 @@
+package org.perl8.test.sbt
+
+object Fingerprint extends org.scalatools.testing.SubclassFingerprint {
+ def isModule: Boolean = false
+ def superClassName: String = "org.perl8.test.Test"
+}
diff --git a/src/main/scala/org/perl8/test/sbt/Framework.scala b/src/main/scala/org/perl8/test/sbt/Framework.scala
new file mode 100644
index 0000000..2fb4c7b
--- /dev/null
+++ b/src/main/scala/org/perl8/test/sbt/Framework.scala
@@ -0,0 +1,13 @@
+package org.perl8.test.sbt
+
+class Framework extends org.scalatools.testing.Framework {
+ val name: String = "Perl8 Test"
+ val tests: Array[org.scalatools.testing.Fingerprint] = Array(Fingerprint)
+
+ def testRunner (
+ testClassLoader: ClassLoader,
+ loggers: Array[org.scalatools.testing.Logger]
+ ): org.scalatools.testing.Runner = {
+ new Runner(testClassLoader, loggers)
+ }
+}
diff --git a/src/main/scala/org/perl8/test/sbt/Runner.scala b/src/main/scala/org/perl8/test/sbt/Runner.scala
new file mode 100644
index 0000000..86abbc9
--- /dev/null
+++ b/src/main/scala/org/perl8/test/sbt/Runner.scala
@@ -0,0 +1,45 @@
+package org.perl8.test.sbt
+
+import org.scalatools.testing.{EventHandler,Event,Result}
+import java.io.{OutputStream,ByteArrayOutputStream}
+
+import org.perl8.test.harness.Utils._
+import org.perl8.test.harness.SummaryReporter
+import org.perl8.test.Test
+
+class Runner (
+ loader: ClassLoader,
+ loggers: Array[org.scalatools.testing.Logger]
+) extends org.scalatools.testing.Runner2 {
+ def run (
+ testClassName: String,
+ fingerprint: org.scalatools.testing.Fingerprint,
+ eventHandler: EventHandler,
+ args: Array[String]
+ ) {
+ val reporter = new SummaryReporter
+ val results = reporter.runTests(Seq(testClassName))
+ results(testClassName)._2.results.foreach { r =>
+ val event = new Event {
+ val testName: String = testClassName
+ val description: String = r.description
+ val result: Result =
+ if (r.passed) {
+ org.scalatools.testing.Result.Success
+ }
+ else if (r.directive.isDefined) {
+ org.scalatools.testing.Result.Skipped
+ }
+ else {
+ org.scalatools.testing.Result.Failure
+ }
+ val error: Throwable = null
+ }
+ eventHandler.handle(event)
+ }
+ }
+
+ def println (thing: Any) {
+ loggers.foreach(_.info(thing.toString))
+ }
+}