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

Kum*_*mar 15 playwright

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

Yev*_*kov 14

更新:

baseURLPlaywright v1.13.0 中添加了该选项。

import { PlaywrightTestConfig } from '@playwright/test';

const config: PlaywrightTestConfig = {
  use: {
    baseURL: 'http://localhost:3000',
  },
};
export default config;
Run Code Online (Sandbox Code Playgroud)

目前,在 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);
});

Run Code Online (Sandbox Code Playgroud)

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

URL=https://playwright.dev npx playwright test
Run Code Online (Sandbox Code Playgroud)

或产品:

URL=https://playwright.prod npx playwright test
Run Code Online (Sandbox Code Playgroud)