mirror of https://github.com/sbt/sbt.git
make running scripted tests slightly less painful
wildcard supported in test and group name prints label of test being run
This commit is contained in:
parent
620c433498
commit
8d1b1f89bf
|
|
@ -2,5 +2,6 @@ import sbt._
|
||||||
|
|
||||||
class SpecializeTest(info: ProjectInfo) extends DefaultProject(info)
|
class SpecializeTest(info: ProjectInfo) extends DefaultProject(info)
|
||||||
{
|
{
|
||||||
override def compileOptions = super.compileOptions ++ Seq(CompileOption("-Yspecialize"))
|
// now on by default in 2.8
|
||||||
|
// override def compileOptions = super.compileOptions ++ Seq(CompileOption("-Yspecialize"))
|
||||||
}
|
}
|
||||||
|
|
@ -20,10 +20,21 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe
|
||||||
|
|
||||||
def scriptedTest(group: String, name: String, log: xsbti.Logger): Unit =
|
def scriptedTest(group: String, name: String, log: xsbti.Logger): Unit =
|
||||||
scriptedTest(group, name, Logger.xlog2Log(log))
|
scriptedTest(group, name, Logger.xlog2Log(log))
|
||||||
def scriptedTest(group: String, name: String, log: Logger): Unit =
|
def scriptedTest(group: String, name: String, log: Logger): Unit = {
|
||||||
testResources.readWriteResourceDirectory(group, name) { testDirectory =>
|
import Path._
|
||||||
scriptedTest(group + " / " + name, testDirectory, log)
|
import GlobFilter._
|
||||||
|
var failed = false
|
||||||
|
for(groupDir <- (resourceBaseDirectory * group).getFiles; nme <- (groupDir * name).getFiles ) {
|
||||||
|
val g = groupDir.getName
|
||||||
|
val n = nme.getName
|
||||||
|
println("Running " + g + " / " + n)
|
||||||
|
testResources.readWriteResourceDirectory(g, n) { testDirectory =>
|
||||||
|
try { scriptedTest(g + " / " + n, testDirectory, log) }
|
||||||
|
catch { case e: xsbt.test.TestException => failed = true }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(failed) error(group + " / " + name + " failed")
|
||||||
|
}
|
||||||
private def scriptedTest(label: String, testDirectory: File, log: Logger): Unit =
|
private def scriptedTest(label: String, testDirectory: File, log: Logger): Unit =
|
||||||
IPC.pullServer( scriptedTest0(label, testDirectory, log) )
|
IPC.pullServer( scriptedTest0(label, testDirectory, log) )
|
||||||
private def scriptedTest0(label: String, testDirectory: File, log: Logger)(server: IPC.Server)
|
private def scriptedTest0(label: String, testDirectory: File, log: Logger)(server: IPC.Server)
|
||||||
|
|
@ -54,7 +65,7 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
case e: xsbt.test.TestException =>
|
case e: xsbt.test.TestException =>
|
||||||
buffered.play()
|
buffered.stop()
|
||||||
buffered.error("x " + label)
|
buffered.error("x " + label)
|
||||||
if(e.getCause eq null)
|
if(e.getCause eq null)
|
||||||
buffered.error(" " + e.getMessage)
|
buffered.error(" " + e.getMessage)
|
||||||
|
|
@ -62,7 +73,7 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe
|
||||||
e.printStackTrace
|
e.printStackTrace
|
||||||
throw e
|
throw e
|
||||||
case e: Exception =>
|
case e: Exception =>
|
||||||
buffered.play()
|
buffered.stop()
|
||||||
buffered.error("x " + label)
|
buffered.error("x " + label)
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue