aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-03-14 21:06:20 -0500
committerJesse Luehrs <doy@tozt.net>2013-03-14 21:06:20 -0500
commite744a379caac8e1a6340bba97310531332868ef9 (patch)
treea2808558fbc2178948e8e2f2f1ebaaed5c85b345
parent9671aaf060357a8aba35a11b05651885f100fa2a (diff)
downloadscala-test-more-e744a379caac8e1a6340bba97310531332868ef9.tar.gz
scala-test-more-e744a379caac8e1a6340bba97310531332868ef9.zip
pass -v as an option to test-only to also display tap
note that you need to run the command line like this: sbt "test-only com.iinteractive.test.TestMoreTest -- -v" fixes gh-3
-rw-r--r--src/main/scala/com/iinteractive/test/harness/SummarizedTests.scala16
-rw-r--r--src/main/scala/com/iinteractive/test/sbt/Runner.scala3
-rw-r--r--src/main/scala/com/iinteractive/test/sbt/SBTReporter.scala13
-rw-r--r--src/main/scala/com/iinteractive/test/tap/Parser.scala1
-rw-r--r--src/main/scala/com/iinteractive/test/tap/TAPEvent.scala7
5 files changed, 34 insertions, 6 deletions
diff --git a/src/main/scala/com/iinteractive/test/harness/SummarizedTests.scala b/src/main/scala/com/iinteractive/test/harness/SummarizedTests.scala
index cd555dd..df20472 100644
--- a/src/main/scala/com/iinteractive/test/harness/SummarizedTests.scala
+++ b/src/main/scala/com/iinteractive/test/harness/SummarizedTests.scala
@@ -21,13 +21,25 @@ trait SummarizedTests {
*
* @return The overall result of the test instance.
*/
- protected def runOneTest (test: Test, cb: TAPEvent => Unit): TAPResult = {
+ protected def runOneTest (
+ test: Test,
+ cb: TAPEvent => Unit,
+ combine: Boolean = false
+ ): TAPResult = {
val out = new PipedOutputStream
val in = new PipedInputStream(out)
+ val err = if (combine) out else Console.err
val testFuture = Future {
Console.withOut(out) {
- test.runInHarness
+ Console.withErr(err) {
+ if (combine) {
+ test.run
+ }
+ else {
+ test.runInHarness
+ }
+ }
}
out.close
}
diff --git a/src/main/scala/com/iinteractive/test/sbt/Runner.scala b/src/main/scala/com/iinteractive/test/sbt/Runner.scala
index 0eee4cf..9c87d0f 100644
--- a/src/main/scala/com/iinteractive/test/sbt/Runner.scala
+++ b/src/main/scala/com/iinteractive/test/sbt/Runner.scala
@@ -19,7 +19,8 @@ class Runner (
eventHandler: testing.EventHandler,
args: Array[String]
) {
- val reporter = new SBTReporter(loader, loggers, eventHandler)
+ val verbose = args.contains("-v")
+ val reporter = new SBTReporter(loader, loggers, eventHandler, verbose)
reporter.run(testClassName)
}
}
diff --git a/src/main/scala/com/iinteractive/test/sbt/SBTReporter.scala b/src/main/scala/com/iinteractive/test/sbt/SBTReporter.scala
index 34df60d..e948591 100644
--- a/src/main/scala/com/iinteractive/test/sbt/SBTReporter.scala
+++ b/src/main/scala/com/iinteractive/test/sbt/SBTReporter.scala
@@ -3,14 +3,15 @@ package com.iinteractive.test.sbt
import org.scalatools.testing
import com.iinteractive.test.harness.{Reporter,SummarizedTests}
-import com.iinteractive.test.tap.{TAPEvent,ResultEvent,EndEvent}
+import com.iinteractive.test.tap.{TAPEvent,ResultEvent,EndEvent,LineEvent}
import com.iinteractive.test.Test
/** Runs a single test under the SBT test harness. */
class SBTReporter (
loader: ClassLoader,
loggers: Array[testing.Logger],
- eventHandler: testing.EventHandler
+ eventHandler: testing.EventHandler,
+ verbose: Boolean
) extends Reporter with SummarizedTests {
def run (testName: String): Int = {
val cb = (e: TAPEvent) => e match {
@@ -72,12 +73,18 @@ class SBTReporter (
logError("FAIL " + testName + " " + errors)
}
}
+ case LineEvent(line) => {
+ if (verbose) {
+ logInfo(line.toString)
+ }
+ }
case _ => ()
}
runOneTest(
loader.loadClass(testName).newInstance.asInstanceOf[Test],
- cb
+ cb,
+ verbose
).exitCode
}
diff --git a/src/main/scala/com/iinteractive/test/tap/Parser.scala b/src/main/scala/com/iinteractive/test/tap/Parser.scala
index 7bc44d3..c66b1a7 100644
--- a/src/main/scala/com/iinteractive/test/tap/Parser.scala
+++ b/src/main/scala/com/iinteractive/test/tap/Parser.scala
@@ -212,6 +212,7 @@ class Parser private (
val (line, rest) = stream.span(_ != '\n') match {
case (l, r) => (parseLine(l.mkString), r.drop(1))
}
+ cb(LineEvent(line))
line match {
case _: CommentLine => readNextLine(rest)
case other => (Some(other), rest)
diff --git a/src/main/scala/com/iinteractive/test/tap/TAPEvent.scala b/src/main/scala/com/iinteractive/test/tap/TAPEvent.scala
index 1c2e88d..96d8dab 100644
--- a/src/main/scala/com/iinteractive/test/tap/TAPEvent.scala
+++ b/src/main/scala/com/iinteractive/test/tap/TAPEvent.scala
@@ -1,5 +1,6 @@
package com.iinteractive.test.tap
+import com.iinteractive.test.tap.Consumer.Line
import com.iinteractive.test.Plan
/** An event emitted while parsing a TAP stream. */
@@ -38,3 +39,9 @@ case class SubtestEndEvent private[tap] (result: TestResult) extends TAPEvent
/** A comment (currently unused). */
case class CommentEvent private[tap] (text: String) extends TAPEvent
+
+/** A line was parsed.
+ * @param line The [[com.iinteractive.test.Consumer.Line Line]] that was
+ * parsed.
+ */
+case class LineEvent private[tap] (line: Line) extends TAPEvent