Моя текущая задача тест выглядит следующим образом:Gradle тест: как сделать что-то, даже если тесты не
test {
doFirst {
println 'Starting application...'
Thread.startDaemon {
appProcess = testServerExec.execute()
}
sleep 20000 // wait for thread to start
}
doLast {
appProcess.destroy()
}
}
Я заметил, что если тесты проходят, appProcess.destroy()
называется и все счастливы. Однако, если тесты терпят неудачу, поток задерживается, и я должен сам убить процесс. Я знаю, что у Gradle есть попытка/наконец, но я не уверен, как правильно использовать это в этом случае. В принципе, я хочу, чтобы appProcess.destroy()
работал, даже если тесты терпят неудачу.
Как я могу это сделать?
Редактировать: Обнаружено beforeSuite
и afterSuite
, но я запускаю несколько наборов тестов, и я хочу, чтобы этот поток был запущен перед всеми наборами и был убит после всех наборов.
Я не эксперт, но вы пробовали 'afterTest'? Кажется, это возможность срыва. [doc] (http://www.gradle.org/docs/current/javadoc/org/gradle/api/tasks/testing/Test.html#afterTest (groovy.lang.Closure)) – zaquest
Существует несколько тестов в нескольких и я хочу, чтобы этот поток был создан/уничтожен один раз, поэтому 'afterTest' и' afterSuite' не будут работать для меня. Это хорошая мысль. – Depressio
Можете ли вы использовать [исходные наборы] (http://www.gradle.org/docs/current/userguide/userguide_single.html#N11D51)? – zaquest