如何在测试中访问 playwright 测试运行器项目信息?
How do I access playwright test runner project info in a test?
我正在编写一个测试来在我的网站上注册用户。使用 @playwright/test,我在 playwright.config.ts:
中定义了几个不同的项目
{
name: 'iPhone 12 Pro',
use: devices['iPhone 12 Pro'],
},
{
name: 'iPhone 12 Pro Max',
use: devices['iPhone 12 Pro Max'],
},
{
name: 'iPhone 5/SE',
use: devices['iPhone SE'],
},
我的测试是这样的:
test('Register a user', async ({ page }) => {
// Go to baseUrl/webapp/
await page.goto(`${baseUrl}webapp/`);
// Click the register tab.
await page.click('ion-segment-button[role="tab"]:has-text("Register")');
await page.click('input[name="mail"]');
// @TODO: How do I get the project name here?
await page.fill('input[name="mail"]', `test@example.com`);
// Press Tab
await page.press('input[name="mail"]', 'Tab');
await page.fill('input[name="pass"]', 'password');
然而,当我运行这个测试时,它只适用于第一个工人,因为你只能注册一次电子邮件地址。
所以我想做的是在我的测试中访问项目名称(例如,iPhone 12 Pro
),以便我可以将其转换为电子邮件地址,以便每次测试运行,会根据项目名注册一个用户
如何在剧作家测试中获取项目名称?
我阅读了有关 workerInfo object 的 Playwright 文档,但我不知道如何在测试中应用它。
您可以像第二个参数那样访问 workerInfo,在这种情况下,您可以使用它来使每个工作人员的电子邮件独一无二:
test('Register a user', async ({ page }, workerInfo) => {
// Go to baseUrl/webapp/
await page.goto(`${baseUrl}webapp/`);
// Click the register tab.
await page.click('ion-segment-button[role="tab"]:has-text("Register")');
await page.click('input[name="mail"]');
await page.fill('input[name="mail"]', `test-user-${workerInfo.workerIndex}@example.com`);
您也可以通过workerInfo.project.name
获取项目名称。
有关详细信息,请参阅 here。
我正在编写一个测试来在我的网站上注册用户。使用 @playwright/test,我在 playwright.config.ts:
中定义了几个不同的项目{
name: 'iPhone 12 Pro',
use: devices['iPhone 12 Pro'],
},
{
name: 'iPhone 12 Pro Max',
use: devices['iPhone 12 Pro Max'],
},
{
name: 'iPhone 5/SE',
use: devices['iPhone SE'],
},
我的测试是这样的:
test('Register a user', async ({ page }) => {
// Go to baseUrl/webapp/
await page.goto(`${baseUrl}webapp/`);
// Click the register tab.
await page.click('ion-segment-button[role="tab"]:has-text("Register")');
await page.click('input[name="mail"]');
// @TODO: How do I get the project name here?
await page.fill('input[name="mail"]', `test@example.com`);
// Press Tab
await page.press('input[name="mail"]', 'Tab');
await page.fill('input[name="pass"]', 'password');
然而,当我运行这个测试时,它只适用于第一个工人,因为你只能注册一次电子邮件地址。
所以我想做的是在我的测试中访问项目名称(例如,iPhone 12 Pro
),以便我可以将其转换为电子邮件地址,以便每次测试运行,会根据项目名注册一个用户
如何在剧作家测试中获取项目名称?
我阅读了有关 workerInfo object 的 Playwright 文档,但我不知道如何在测试中应用它。
您可以像第二个参数那样访问 workerInfo,在这种情况下,您可以使用它来使每个工作人员的电子邮件独一无二:
test('Register a user', async ({ page }, workerInfo) => {
// Go to baseUrl/webapp/
await page.goto(`${baseUrl}webapp/`);
// Click the register tab.
await page.click('ion-segment-button[role="tab"]:has-text("Register")');
await page.click('input[name="mail"]');
await page.fill('input[name="mail"]', `test-user-${workerInfo.workerIndex}@example.com`);
您也可以通过workerInfo.project.name
获取项目名称。
有关详细信息,请参阅 here。