【发布时间】:2012-01-23 05:01:07
【问题描述】:
我正在将 SBT 与 Play 框架一起使用。
我创建了一个自定义 TaskKey 来在我的项目中运行 JavaScript 测试:
import sbt._
import sbt.Process._
import PlayProject._
object ApplicationBuild extends Build {
val testJsTask = TaskKey[Unit]("testJs", "Run javascript tests.") := {}
val main = PlayProject("xxx", 1.0, Seq())
.settings(defaultScalaSettings: _*)
.settings(testJsTask)
}
到目前为止一切顺利。
我想在有人执行test 任务时始终运行此testJsTask。
我猜应该是这样的:
test in Test <<= (test in Test).dependsOn(testJsTask)
我不知道应该如何准确定义它。如何将依赖项添加到现有任务,如“测试”或“构建”?
更新
@Christian 提出更改后,构建定义如下所示:
object ApplicationBuild extends Build {
val testJsTask = TaskKey[Unit]("testJs", "Run tests for javascript client.")
def testJs = {}
val main = PlayProject("xxx", 1.0, Seq())
.settings(defaultScalaSettings: _*)
.settings(testJsTask := testJs)
(test in Test) <<= (test in Test) dependsOn (testJs)
}
不幸的是,该解决方案也不起作用:
[error] /xxx/project/Build.scala:21: not found: value test
[error] (test in Test) <<= (test in Test) dependsOn (testJs)
[error] ^
[error] one error found
[error] {file:/xxx/project/}default-f468ae/compile:compile: Compilation failed
【问题讨论】:
-
你成功了吗?我最近的编辑对您有帮助吗?
-
不幸的是,我没有办法在 Play 版本上做同样的事情:/ 我会尝试做更多的测试,如果有任何成功,我会在这里报告。
-
我很想看看你是否找到了解决办法。
-
只为未来的读者:
(test in Test) := (test in Test).dependsOn(otherTask).value为我工作
标签: playframework sbt