Playwright(节点)无法从 Azure Pipeline 看到秘密环境变量

问题描述 投票:0回答:1

我正在 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 来检索上面的变量吗?

node.js azure-devops azure-pipelines playwright azure-pipelines-yaml
1个回答
0
投票

您可以使用

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);

});

测试结果:

result

© www.soinside.com 2019 - 2024. All rights reserved.