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Прикрепляет значение или файл с диска к текущему шагу теста. Некоторые репортеры отображают вложения шагов теста. Должен быть указан либо 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 });
});
});
testStepInfo.attach() автоматически заботится о копировании прикрепленных файлов в место, доступное для репортеров. Вы можете безопасно удалить вложение после ожидания вызова attach.
Использование
await testStepInfo.attach(name);
await testStepInfo.attach(name, options);
Аргументы
-
Имя вложения. Имя также будет очищено и использовано в качестве префикса имени файла при сохранении на диск.
-
options
Object (опционально)-
body
string | Buffer (опционально)#Тело вложения. Взаимоисключающе с path.
-
contentType
string (опционально)#Тип содержимого этого вложения для правильного отображения в отчете, например
'application/json'
или'image/png'
. Если не указано, тип содержимого определяется на основе path, или по умолчанию используетсяtext/plain
для string вложений иapplication/octet-stream
для Buffer вложений. -
Путь в файловой системе к прикрепленному файлу. Взаимоисключающе с body.
-
Возвращает
skip()
Добавлено в: v1.51Прерывает текущий выполняемый шаг и помечает его как пропущенный. Полезно для шагов, которые в настоящее время не работают и планируются к исправлению в ближайшее время.
Использование
import { test, expect } from '@playwright/test';
test('my test', async ({ page }) => {
await test.step('check expectations', async step => {
step.skip();
// тело шага ниже не будет выполнено
// ...
});
});
skip(condition)
Добавлено в: v1.51Условно прерывает текущий выполняемый шаг и помечает его как пропущенный с необязательным описанием. Полезно для шагов, которые не должны выполняться в некоторых случаях.
Использование
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');
// тело шага ниже не будет выполнено
// ...
});
});
Аргументы