在我的Play項目中,我試圖在標準Play的test
任務之前運行我的JavaScript測試。我寫了一個SBT任務,並且這個工作正常,除了我只想在Play測試通過時運行Play test
任務。目前Play test
任務運行JavaScript測試發生的任何事情。根據另一個結果執行SBT任務
我build.sbt
如下所示:
val jsTest = taskKey[Int]("jsTest")
jsTest in Test := {
"karma start karma.conf.js" !
}
test := {
val exitCode = (jsTest in Test).value
if(exitCode == 0) {
(test in Test).value
}
}
正如我所說test.value
始終執行,無論exitCode
。 jsTest
的結果如何使test
有條件?
無論何時你說'a:= ... b.value ...',那麼a都依賴於b,並且b在運行中的任何內容之前首先運行。這就是爲什麼你所嘗試的不起作用。也許'taskDyn'會工作? (見https://github.com/sbt/sbt/commit/d1ed57ef519b82ea32bbd1165bcc4e8f128c9e52)如果沒有,也許你需要寫一個命令而不是任務。 –