我正在 Azure 中构建一个管道,以在 Playwright 中运行一些测试。 我从 Azure keyvault 获取秘密密码并将其存储为变量 - 它按预期在管道中的步骤/脚本之间工作(正在打印正确的调试值):
- script: |
echo "##vso[task.setvariable variable=SECRET_PASSWORD]$password"
echo $(SECRET_PASSWORD)
- script: |
echo $(SECRET_PASSWORD)
pwd
cd src/somepath
npm install --verbose
npm list --verbose
npx playwright install
npx playwright test tests/someTest.spec.js
env:
SECRET_PASSWORD: $(SECRET_PASSWORD)
然后我将在 Playwright 中访问这个变量,如下所示:
const secretPassword = process.env.SECRET_PASSWORD
console.log('Secret Password PLAYWRIGHT:', secretPassword);
这导致了
undefined
我必须使用 dotenv 来检索上面的变量吗?
您可以使用
export SECRET_PASSWORD=your_secret_password
命令在 bash 任务中设置环境变量。
例如,我使用以下 YAML 管道进行了测试。
pool:
vmImage: ubuntu-latest
steps:
- bash: |
echo "##vso[task.setvariable variable=SECRET_PASSWORD]mypassword"
- bash: |
echo $(SECRET_PASSWORD)
export SECRET_PASSWORD=$(SECRET_PASSWORD)
npm install --verbose
npm list --verbose
npx playwright install
npx playwright test
example.spec.js
:
// example.spec.js
const { test, expect } = require('@playwright/test');
test('access environment variable', async ({ page }) => {
const secretPassword = process.env.SECRET_PASSWORD;
console.log('Secret Password PLAYWRIGHT:', secretPassword);
});
测试结果: