Модульные тесты, выполненные через maven без моего конвейера Jenkins, не могут получить доступ к переменным среды, настроенным с помощью withEnv - PullRequest
0 голосов
/ 02 апреля 2020

Цель:

Доступ BOB_USER И BOB_PASS из теста JUnit, выполненного через mvn install в моем конвейере Jenkins.

Что на самом деле происходит:

Если я буду искать их с помощью команд оболочки, я вижу их:

sh 'env | fgrep BOB_`

возвращает:

BOB_USER=****
BOB_PASS=****`

Но в моем модульном тесте для

System.out.println("ENV BOB_USER = "+defaultString(System.getenv("BOB_USER"), "N/A"));
System.out.println("ENV BOB_PASS = "+defaultString(System.getenv("BOB_PASS"), "N/A"));

Я получаю:

BOB_USER = N/A
BOB_PASS = N/A

Код трубопровода:

withCredentials([usernamePassword(credentialsId: 'bob-credentials', usernameVariable: 'bobUser', passwordVariable: 'bobPass')]) {
    withSonarQubeEnv('SonarQubeAWS'){
        withMaven(jdk: "$JDK_TOOL_VERSION", maven: "$MVN_TOOL_VERSION", mavenSettingsConfig: "$MVN_SETTINGS_CONFIG"){
            withEnv(["BOB_USER=${bobUser}", "BOB_PASSWORD=${bobPass}"]) {
                sh 'env | fgrep BOB_';

                sh "mvn clean install --log-file ${sonarLog} sonar:sonar"
            }
        }
    }//withSonar
}
...