Skip to main content

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');
// ... остальной код шага
});
});

Методы

attach

Добавлено в: v1.51 testStepInfo.attach

Прикрепляет значение или файл с диска к текущему шагу теста. Некоторые репортеры отображают вложения шагов теста. Должен быть указан либо path, либо body, но не оба. Вызов этого метода привяжет вложение к шагу, в отличие от testInfo.attach(), который сохраняет все вложения на уровне теста.

Например, вы можете прикрепить скриншот к шагу теста:

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

test('basic test', async ({ page }) => {
await page.goto('https://playwright.dev');
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 });
});
});
note

testStepInfo.attach() автоматически заботится о копировании прикрепленных файлов в место, доступное для репортеров. Вы можете безопасно удалить вложение после ожидания вызова attach.

Использование

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

Аргументы

  • name string#

    Имя вложения. Имя также будет очищено и использовано в качестве префикса имени файла при сохранении на диск.

  • options Object (опционально)

    • body string | Buffer (опционально)#

      Тело вложения. Взаимоисключающе с path.

    • contentType string (опционально)#

      Тип содержимого этого вложения для правильного отображения в отчете, например 'application/json' или 'image/png'. Если не указано, тип содержимого определяется на основе path, или по умолчанию используется text/plain для string вложений и application/octet-stream для Buffer вложений.

    • path string (опционально)#

      Путь в файловой системе к прикрепленному файлу. Взаимоисключающе с 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();
// тело шага ниже не будет выполнено
// ...
});
});

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');
// тело шага ниже не будет выполнено
// ...
});
});

Аргументы

  • condition boolean#

    Условие пропуска. Шаг теста пропускается, когда условие равно true.

  • description string (опционально)#

    Необязательное описание, которое будет отражено в отчете о тестировании.