跳转到主要内容

TestStepInfo

TestStepInfo 包含当前正在运行的测试步骤的信息。它作为参数传递给步骤函数。 TestStepInfo 提供了控制测试步骤执行的工具。

import { test, expect } from '@playwright/test';

test('basic test', async ({ page, browserName }) => {
await test.step('check some behavior', async step => {
step.skip(browserName === 'webkit', 'The feature is not available in WebKit');
// ... rest of the step code
});
});

方法

attach

添加于: v1.51 testStepInfo.attach

将一个值或文件从磁盘附加到当前测试步骤。一些报告器会显示测试步骤附件。必须指定 pathbody,但不能同时指定两者。调用此方法会将附件归因于该步骤,而不是 testInfo.attach(),后者将所有附件存储在测试级别。

例如,您可以将屏幕截图附加到测试步骤

import { test, expect } from '@playwright/test';

test('basic test', async ({ page }) => {
await page.goto('https://playwright.net.cn');
await test.step('check page rendering', async step => {
const screenshot = await page.screenshot();
await step.attach('screenshot', { body: screenshot, contentType: 'image/png' });
});
});

或者您可以附加您的 API 返回的文件

import { test, expect } from '@playwright/test';
import { download } from './my-custom-helpers';

test('basic test', async ({}) => {
await test.step('check download behavior', async step => {
const tmpPath = await download('a');
await step.attach('downloaded', { path: tmpPath });
});
});
注意

testStepInfo.attach() 自动将附加文件复制到报告器可访问的位置。在等待 attach 调用后,您可以安全地删除附件。

用法

await testStepInfo.attach(name);
await testStepInfo.attach(name, options);

参数

  • name 字符串#

    附件名称。保存到磁盘时,该名称也将被净化并用作文件名前缀。

  • options Object (可选)

    • body 字符串 | 缓冲区 (可选)#

      附件正文。与 path 互斥。

    • contentType 字符串 (可选)#

      此附件的内容类型,以便在报告中正确显示,例如 'application/json''image/png'。如果省略,则根据 path 推断内容类型,或者对于 字符串 附件默认为 text/plain,对于 缓冲区 附件默认为 application/octet-stream

    • path 字符串 (可选)#

      文件系统上附加文件的路径。与 body 互斥。

返回


skip()

添加于: v1.51 testStepInfo.skip()

中止当前正在运行的步骤并将其标记为已跳过。对于当前失败并计划在近期修复的步骤很有用。

用法

import { test, expect } from '@playwright/test';

test('my test', async ({ page }) => {
await test.step('check expectations', async step => {
step.skip();
// step body below will not run
// ...
});
});

skip(condition)

添加于: v1.51 testStepInfo.skip(condition)

根据条件中止当前正在运行的步骤并将其标记为已跳过,并可选择提供描述。对于在某些情况下不应执行的步骤很有用。

用法

import { test, expect } from '@playwright/test';

test('my test', async ({ page, isMobile }) => {
await test.step('check desktop expectations', async step => {
step.skip(isMobile, 'not present in the mobile layout');
// step body below will not run
// ...
});
});

参数

  • condition 布尔值#

    跳过条件。当条件为 true 时,测试步骤将被跳过。

  • description 字符串 (可选)#

    可选描述,将反映在测试报告中。


属性

titlePath

新增于: v1.55 testStepInfo.titlePath

完整的标题路径,从测试文件名开始,包括步骤标题。另请参阅 testInfo.titlePath

用法

testStepInfo.titlePath

类型