在 Playwright 中,如何通过命令行传递 baseUrl,以便我的规范文件没有我正在测试的应用程序的硬编码 url?

Posted

技术标签:

【中文标题】在 Playwright 中,如何通过命令行传递 baseUrl,以便我的规范文件没有我正在测试的应用程序的硬编码 url?【英文标题】:In Playwright, how to pass a baseUrl via command line so my spec files dont have a hardcoded url for the app I am testing? 【发布时间】:2021-09-13 13:34:55 【问题描述】:

在 Protractor 中,我目前正在命令行中传递一个标志,指示我正在测试的应用程序的 URL 是什么。现在我们正在转向剧作家,我想做类似的事情。由于相同的测试将用于在不同的环境(开发、测试、CI)中测试应用程序,因此我需要一种传递不同 URL 的方法,理想情况下,如果我可以通过命令行控制它会很好。

【问题讨论】:

【参考方案1】:

更新:

在 Playwright v1.13.0 中添加了baseURL 选项。

import  PlaywrightTestConfig  from '@playwright/test';

const config: PlaywrightTestConfig = 
  use: 
    baseURL: 'http://localhost:3000',
  ,
;
export default config;

目前,在 Playwright Test v1.12.0 中没有 baseUrl 属性,就像我们在 Protractor 中那样。但是你可以通过一个系统变量来完成它。

例如:

import  test  from '@playwright/test';

const BASE_URL = process.env.URL;

test('verify title of the page', async ( page ) => 
  await page.goto(BASE_URL);
);

然后在开发环境上运行它:

URL=https://playwright.dev npx playwright test

或产品:

URL=https://playwright.prod npx playwright test

【讨论】:

以上是关于在 Playwright 中,如何通过命令行传递 baseUrl,以便我的规范文件没有我正在测试的应用程序的硬编码 url?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过命令行在pytest中传递参数

如何在 Python 3 中传递命令行参数

如何在 Playwright 中使用已安装的 chrome 版本?

如何通过 c# 传递多个命令行参数

Playwright 中有没有办法在动态表中选择特定按钮?

如何通过黄瓜选项通过带有黄瓜功能文件的命令行传递应用程序 URL?