В моем проекте Play я пытаюсь запустить свои тесты JavaScript перед заданием стандартного Play test
. Я написал задачу SBT, и это работает отлично, за исключением того, что я хочу, чтобы задача Play test
выполнялась при прохождении тестов JavaScript. На данный момент задача 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
. Как сделать test
условным результатом jsTest
?
В любое время, когда вы говорите 'a: = ... b.value ...', тогда a зависит от b, а b запускается сначала перед чем-либо в теле прогонов. Вот почему вы пытались не работать. Может быть, 'taskDyn' будет работать? (см. https://github.com/sbt/sbt/commit/d1ed57ef519b82ea32bbd1165bcc4e8f128c9e52) Если нет, возможно, вам нужно написать команду вместо задачи. –