SBT不会在Play2项目上调用Test.Setup [英] SBT doesn't call Test.Setup on a Play2 project

查看:91
本文介绍了SBT不会在Play2项目上调用Test.Setup的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的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的文本,而不打印常规Test的文本.

I can launch both tasks test and it:test, but it only prints the text for the IntegrationTest, and not for the regular Test.

我发现Play2具有一些相关的默认设置:

I see that Play2 has some default settings related:

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)
},

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

Isn't my build supposed to override these settings?

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

By the way, can I call an external library or a test source class in this Setup?

推荐答案

也许这是sbt的约束.

Maybe this is constraint of sbt.

sbt官方文件说

对群组进行分叉时,不支持设置"和清除"操作.

Setup and Cleanup actions are not supported when a group is forked.

https: //github.com/sbt/sbt/blob/v0.12.2/src/sphinx/Detailed-Topics/Testing.rst#forking-tests

http://www.scala-sbt. org/0.12.2/docs/Detailed-Topics/Testing.html


fork in Test := true

是Play2.1.0中的默认设置

is default from Play2.1.0

https://github.com/playframework/Play20/pull/654/文件#L5L110

这篇关于SBT不会在Play2项目上调用Test.Setup的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆