Как правильно установить переменные среды лениво для тестовой задачи Gradle? - PullRequest
0 голосов
/ 07 декабря 2018

В нашей сборке переменные среды вычисляются в общем месте.

tasks.withType(Test) {
    environment << project.environmentVars
}

Фактические переменные в настоящее время загружаются в другом сценарии сборки:

ext.environmentVars = [:] as Map<String, String>
// ... setting many variables ...

Некоторыедля того, чтобы быть настроенным, необходимо вызывать команды, чтобы получить правильные значения для вставки, поэтому я хотел бы отложить работу.

Я знаю, что могу сделать это:

tasks.withType(Test) {
    doFirst {
        environment << project.environmentVars
    }
}

НоЯ обеспокоен тем, что это может привести к тому, что задача не будет обрабатывать среду как входную, поэтому изменяющаяся среда может не запускать тесты.

В идеале я хотел бы сделать следующее:

tasks.withType(Test) {
    environment << { project.environmentVars }
}

Но, конечно, это ошибка.

Есть ли правильный способ сделать это?

...