在 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?

在 Protractor 中,我目前在命令行中传递一个标志,指示我的 URL 是我正在测试的应用程序的内容。现在我们正在转向 Playwright,我想做类似的事情。由于相同的测试将用于在不同的环境(开发、测试、CI)中测试应用程序,我需要一种方法来传递不同的 URLs,理想情况下,如果我可以通过命令行。

更新:

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 中没有 Protractor 中的 baseUrl 属性。但是你可以用一个系统变量来完成它。

例如:

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