我正在使用IntelliJ的“运行/调试配置”工具传递系统变量,如下所示:
Tasks: clean headlessTest
VM options: -Denv=test -DstoreCode=189 -Ddept=apparel
Arguments: -PdepartmentJourney=department_journey
Environment variables: UI_USERNAME=test;UI_PASSWORD=12345...//These are passed in the pipeline script in CI
这将发出本地Gradle命令:
./gradlew clean headlessTest -Denv=test -DstoreCode=189 -Ddept=apparel -PdepartmentJourney=department_journey --no-daemon
在我的CI管道中:
def setEnvironmentVariables(){
env.UI_USERNAME = getFromSecrets....
env.UI_PASSWORD = getFromSecrets....
}
./gradlew clean headlessTest -Denv=${env.ENVIRONMENT} - DstoreCode=${env.storeCode} -Ddept=${env.dept} -PdepartmentJourney=department_journey --no-daemon
我认为这会在运行时调用System.setProperty(String key,String value)方法。
当我使用getProperty
调试代码时,仅设置了storeCode
值,而dept
被设置为null。
我每个人都使用相同的getProperty(String key)
方法。
从终端运行并在管道中运行还会看到服装== null。
有明显的原因吗?