У меня, похоже, проблема с курицей/яйцом. У меня есть тестовая задача, которую Gradle определяет с помощью плагина Java
. Я установил категории JUnit для запуска с использованием свойства. Моя команда проявила интерес к задаче, которая будет запускать задачи в определенной категории, вместо того, чтобы использовать -P для установки свойства в командной строке.Настройка задачи «Грейдл» на основе выполняемой задачи
Я не могу придумать способ снять это, так как новая задача должна была бы сконфигурировать задание test
, только если оно выполнено. Поскольку категории для запуска должны быть входным параметром для тестовой задачи, чтобы удостовериться, что функции проверки UP-TO-DATE правильны, их необходимо установить на этапе конфигурации и не может дождаться фазы выполнения.
Кто-нибудь знает, как сделать установку, подобную этой работе? Может быть, я подхожу к нему с неправильного угла.
Edit 1
Текущий build.gradle
apply plugin: 'java'
def defaultCategory = 'checkin'
test {
def category = (project.hasProperty('category') ? project['category'] : defaultCategory)
inputs.property('category', category)
useJUnit()
options {
includeCategories category
}
}
То, что я хотел бы, но не работает:
apply plugin: 'java'
def defaultCategory = 'checkin'
test {
def category = (project.hasProperty('category') ? project['category'] : defaultCategory)
inputs.property('category', category)
useJUnit()
options {
includeCategories category
}
}
task nightly(dependsOn: 'build') {
defaultCategory = 'nightly'
}
task weekly(dependsOn: 'build') {
defaultCategory = 'weekly'
}
Поскольку обе задачи настроены независимо будут ли они запущены, они станут бесполезными. Я не могу отложить настройку значения по умолчанию для категории до тех пор, пока эта фаза не будет выполнена, потому что это значение необходимо для настройки входов задачи задачи test
и потому что для этого требуется значение для выполнения задачи test
, которая выполняется до задачи build
.
Могли бы вы предоставить пример сценария, показывающий, где у вас есть проблемы? – Opal