mirror of https://github.com/sbt/sbt.git
Remove dependencies on test frameworks, fixes to make test interface work
This commit is contained in:
parent
e417e19b02
commit
ecea2f2ed6
|
|
@ -61,38 +61,5 @@ class SbtProject(info: ProjectInfo) extends DefaultProject(info) //with test.Sbt
|
|||
override def libraryDependencies = super.libraryDependencies ++ getDependencies(scalaVersionString)
|
||||
|
||||
def getDependencies(scalaVersion: String) =
|
||||
scalaVersion match
|
||||
{
|
||||
case Version2_7_2 => variableDependencies(false, scalaVersion, /*ScalaTest*/"0.9.3", /*Specs*/"1.4.0", false)
|
||||
case Version2_7_3 => variableDependencies(false, scalaVersion, /*ScalaTest*/"0.9.4", /*Specs*/"1.4.3", true)
|
||||
case Version2_7_4 => variableDependencies(false, scalaVersion, /*ScalaTest*/"0.9.5", /*Specs*/"1.4.3", true)
|
||||
case Version2_7_5 => variableDependencies(false, scalaVersion, /*ScalaTest*/"0.9.5", /*Specs*/"1.4.3", true)
|
||||
case Version2_7_6 => variableDependencies(false, scalaVersion, /*ScalaTest*/"0.9.5", /*Specs*/"1.4.3", true)
|
||||
case Version2_8_0 => variableDependencies(true, scalaVersion, /*ScalaTest*/"0.9.5", /*Specs*/"1.4.3", true)
|
||||
case _ => error("Unsupported Scala version: " + scalaVersion)
|
||||
}
|
||||
|
||||
/** Defines the dependencies for the given version of Scala, ScalaTest, and Specs. If uniformTestOrg is true,
|
||||
* the 'org.scala-tools.testing' organization is used. Otherwise, 'org.' is prefixed to the module name. */
|
||||
private def variableDependencies(is28: Boolean, scalaVersion: String, scalaTestVersion: String, specsVersion: String, uniformTestOrg: Boolean) =
|
||||
{
|
||||
( if(is28) Nil else testDependencies(scalaTestVersion, specsVersion, uniformTestOrg)) ++
|
||||
( if(is28) Seq("jline" % "jline" % "0.9.94" intransitive()) else Nil)
|
||||
}
|
||||
private def testDependencies(scalaTestVersion: String, specsVersion: String, uniformTestOrg: Boolean) =
|
||||
{
|
||||
testDependency("scalatest", scalaTestVersion, uniformTestOrg) ::
|
||||
testDependency("specs", specsVersion, uniformTestOrg) ::
|
||||
testDependency("scalacheck", "1.5", false) ::
|
||||
Nil
|
||||
}
|
||||
|
||||
/** Creates a dependency element for a test. See 'testOrg' for a description of uniformTestOrg.*/
|
||||
|
||||
private def testDependency(name: String, version: String, uniformTestOrg: Boolean) =
|
||||
testOrg(name, uniformTestOrg) % name % version % "optional" intransitive()
|
||||
|
||||
/** Returns the organization for the given test library. If uniform is true,
|
||||
* the 'org.scala-tools.testing' organization is used. Otherwise, 'org.' is prefixed to the module name.*/
|
||||
private def testOrg(name: String, uniform: Boolean) = if(uniform) "org.scala-tools.testing" else "org." + name
|
||||
if(scalaVersion == Version2_8_0) Seq("jline" % "jline" % "0.9.94" intransitive()) else Nil
|
||||
}
|
||||
|
|
@ -193,7 +193,7 @@ abstract class BasicScalaProject extends ScalaProject with BasicDependencyProjec
|
|||
def compileOrder = BasicScalaProject.this.compileOrder
|
||||
protected def testClassNames(frameworks: Seq[TestFramework]) =
|
||||
{
|
||||
val loader = new URLClassLoader(classpath.get.map(_.asURL).toSeq.toArray)
|
||||
val loader = new URLClassLoader(classpath.get.map(_.asURL).toSeq.toArray, getClass.getClassLoader)
|
||||
def getTestNames(framework: TestFramework): Seq[String] =
|
||||
try { framework.create(loader).tests.map(_.superClassName) }
|
||||
catch { case e: ClassNotFoundException => log.debug("Framework implementation '" + framework.implClassName + "' not present."); Nil }
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ object Result extends Enumeration
|
|||
object TestFrameworks
|
||||
{
|
||||
val ScalaCheck = new TestFramework("org.scalacheck.FrameworkImpl")
|
||||
val ScalaTest = new TestFramework("org.scalatest.FrameworkImpl")
|
||||
val ScalaTest = new TestFramework("org.scalatest.tools.ScalaTestFramework")
|
||||
val Specs = new TestFramework("org.specs.FrameworkImpl")
|
||||
}
|
||||
class TestFramework(val implClassName: String) extends NotNull
|
||||
|
|
|
|||
Loading…
Reference in New Issue