mirror of https://github.com/sbt/sbt.git
Josh's patches for test-interface 0.2
This commit is contained in:
parent
2e942915aa
commit
1e0424153a
|
|
@ -4,7 +4,8 @@
|
||||||
package sbt
|
package sbt
|
||||||
|
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import org.scalatools.testing.{TestFingerprint => Fingerprint, Framework, Runner, Logger=>TLogger}
|
import org.scalatools.testing.{TestFingerprint => Fingerprint, Framework,
|
||||||
|
Runner, Logger=>TLogger, EventHandler, Event}
|
||||||
|
|
||||||
object Result extends Enumeration
|
object Result extends Enumeration
|
||||||
{
|
{
|
||||||
|
|
@ -13,10 +14,11 @@ object Result extends Enumeration
|
||||||
|
|
||||||
object TestFrameworks
|
object TestFrameworks
|
||||||
{
|
{
|
||||||
val ScalaCheck = new TestFramework("org.scalacheck.FrameworkImpl")
|
val ScalaCheck = new TestFramework("org.scalacheck.ScalaCheckFramework")
|
||||||
val ScalaTest = new TestFramework("org.scalatest.tools.ScalaTestFramework")
|
val ScalaTest = new TestFramework("org.scalatest.tools.ScalaTestFramework")
|
||||||
val Specs = new TestFramework("org.specs.FrameworkImpl")
|
val Specs = new TestFramework("org.specs.FrameworkImpl")
|
||||||
}
|
}
|
||||||
|
|
||||||
class TestFramework(val implClassName: String) extends NotNull
|
class TestFramework(val implClassName: String) extends NotNull
|
||||||
{
|
{
|
||||||
def create(loader: ClassLoader, log: Logger): Option[Framework] =
|
def create(loader: ClassLoader, log: Logger): Option[Framework] =
|
||||||
|
|
@ -25,6 +27,7 @@ class TestFramework(val implClassName: String) extends NotNull
|
||||||
catch { case e: ClassNotFoundException => log.debug("Framework implementation '" + implClassName + "' not present."); None }
|
catch { case e: ClassNotFoundException => log.debug("Framework implementation '" + implClassName + "' not present."); None }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final class TestRunner(framework: Framework, loader: ClassLoader, listeners: Seq[TestReportListener], log: Logger) extends NotNull
|
final class TestRunner(framework: Framework, loader: ClassLoader, listeners: Seq[TestReportListener], log: Logger) extends NotNull
|
||||||
{
|
{
|
||||||
private[this] val delegate = framework.testRunner(loader, listeners.flatMap(_.contentLogger).toArray)
|
private[this] val delegate = framework.testRunner(loader, listeners.flatMap(_.contentLogger).toArray)
|
||||||
|
|
@ -33,7 +36,10 @@ final class TestRunner(framework: Framework, loader: ClassLoader, listeners: Seq
|
||||||
val testClass = testDefinition.testClassName
|
val testClass = testDefinition.testClassName
|
||||||
def runTest() =
|
def runTest() =
|
||||||
{
|
{
|
||||||
val results = delegate.run(testClass, testDefinition, args.toArray)
|
// here we get the results! here is where we'd pass in the event listener
|
||||||
|
val results = new scala.collection.mutable.ListBuffer[Event]
|
||||||
|
val handler = new EventHandler { def handle(e:Event){ results += e } }
|
||||||
|
delegate.run(testClass, testDefinition, handler, args.toArray)
|
||||||
val event = TestEvent(results)
|
val event = TestEvent(results)
|
||||||
safeListenersCall(_.testEvent( event ))
|
safeListenersCall(_.testEvent( event ))
|
||||||
event.result
|
event.result
|
||||||
|
|
@ -59,6 +65,7 @@ final class TestRunner(framework: Framework, loader: ClassLoader, listeners: Seq
|
||||||
}
|
}
|
||||||
|
|
||||||
final class NamedTestTask(val name: String, action: => Option[String]) extends NotNull { def run() = action }
|
final class NamedTestTask(val name: String, action: => Option[String]) extends NotNull { def run() = action }
|
||||||
|
|
||||||
object TestFramework
|
object TestFramework
|
||||||
{
|
{
|
||||||
def runTests(frameworks: Seq[TestFramework], classpath: Iterable[Path], scalaLoader: ClassLoader, tests: Seq[TestDefinition], log: Logger,
|
def runTests(frameworks: Seq[TestFramework], classpath: Iterable[Path], scalaLoader: ClassLoader, tests: Seq[TestDefinition], log: Logger,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue