我正在使用SBT和Play框架。如何在sbt中的測試任務之前附加自定義任務執行?
我創建了一個自定義的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)
我不知道應該如何精確定義。如何將依賴項添加到現有任務,如「測試」或「構建」?
UPDATE
後@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
你成功了嗎?我的最新編輯有幫助你嗎? – Christian 2011-12-21 09:23:44
不幸的是,我沒有看到與Play版本相同的方式:/我會嘗試做更多的測試,如果會有任何成功,我會在這裏報告。 – 2011-12-23 08:35:38
我很想看看您是否找到了解決方案。 – 2rs2ts 2015-07-01 18:31:48