如何让Azure DevOps流水线中的Playwright读取配置文件的baseURL
解决Azure DevOps流水线中Playwright未加载baseURL的问题
问题根源
你的playwright.config.ts放在项目根目录,但流水线的Bash任务设置了workingDirectory: 'tests',Playwright默认会从当前工作目录查找配置文件,所以在tests目录下找不到根目录的配置,导致baseURL未被加载,page.goto('/relative/url')就变成了无效的相对URL。
两种修复方案
方案1:修改工作目录为项目根目录,指定测试目录运行
调整Bash任务的工作目录为根目录,让Playwright自动加载根目录的配置文件,同时指定测试目录路径:
修改后的流水线Bash任务:
- task: Bash@3 displayName: 'Run Playwright tests' inputs: workingDirectory: '.' # 改为项目根目录 targetType: 'inline' failOnStderr: true script: | npm install # 在根目录安装依赖,对应根目录的package.json npx playwright test tests/ # 指定测试文件所在目录
方案2:显式指定配置文件路径
如果不想修改工作目录,可以在npx playwright test命令中通过--config参数,直接指定根目录的配置文件路径:
修改后的流水线Bash任务:
- task: Bash@3 displayName: 'Run Playwright tests' inputs: workingDirectory: 'tests' targetType: 'inline' failOnStderr: true script: | npm install ../ # 安装根目录的依赖包 npx playwright test --config ../playwright.config.ts # 显式指定配置文件位置
额外注意事项
- 确保项目根目录的
package.json包含Playwright相关依赖,npm install必须在对应目录执行才能安装全量依赖。 - 流水线的执行逻辑尽量和本地保持一致(比如本地在根目录运行测试,流水线也对应调整),减少环境差异导致的问题。
内容的提问来源于stack exchange,提问作者Super Jade
相关产品推荐
相关产品推荐

