SBT不会在Play2项目上调用Test.Setup

时间:2013-05-02 19:25:24

标签: scala playframework sbt

这是我的SBT版本:

  val main = play.Project(appName, appVersion, appDependencies).settings(defaultScalaSettings:_*)
    .settings(
    scalaVersion := "2.10.0",
    resolvers += .....
  )
    .configs(IntegrationTest)
    .settings( Defaults.itSettings : _*)
    .settings(
    testOptions in Test += Tests.Setup( () => println("Setup Test yoohooo") ),
    testOptions in Test += Tests.Cleanup( () => println("Cleanup Test yoohoo") ),
    scalaSource in Test <<= baseDirectory / "test/unit",
    parallelExecution in Test := true,

    testOptions in IntegrationTest += Tests.Setup( () => println("Setup Integration Test yoohoo") ),
    testOptions in IntegrationTest += Tests.Cleanup( () => println("Cleanup Integration Test yoohoo") ),
    scalaSource in IntegrationTest <<= baseDirectory / "test/integration",
    parallelExecution in IntegrationTest := false

  )

我可以启动testit:test两个任务,但它只会打印IntegrationTest的文本,而不会打印常规测试。

我看到Play2有一些默认设置:

testOptions in Test += Tests.Setup { loader =>
  loader.loadClass("play.api.Logger").getMethod("init", classOf[java.io.File]).invoke(null, new java.io.File("."))
},

testOptions in Test += Tests.Cleanup { loader =>
  loader.loadClass("play.api.Logger").getMethod("shutdown").invoke(null)
},

我的构建不应该覆盖这些设置吗?

顺便说一句,我可以在此安装程序中调用外部库或测试源类吗?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

使用Test.Cleanup它也不起作用,但在提供的another answer are workarounds中。