TestConfig
Playwright Test предоставляет множество параметров для настройки сбора и выполнения тестов, например timeout или testDir. Эти параметры описаны в объекте TestConfig в файле конфигурации. Этот тип описывает формат файла конфигурации. Чтобы получить разрешённые параметры конфигурации во время выполнения, используйте FullConfig.
Playwright Test поддерживает одновременный запуск нескольких проектов тестирования. Параметры, относящиеся к конкретному проекту, следует указывать в testConfig.projects, но объект верхнего уровня TestConfig также может определять базовые параметры, общие для всех проектов.
import { defineConfig } from '@playwright/test';
export default defineConfig({
timeout: 30000,
globalTimeout: 600000,
reporter: 'list',
testDir: './tests',
}); Свойства
build
Конфигурация транспилятора Playwright.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
build: {
external: ['**/*bundle.js'],
},
}); Тип
captureGitInfo
Эти параметры определяют, будет ли собираться и сохраняться информация Git в конфигурации testConfig.metadata.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
captureGitInfo: { commit: true, diff: true }
}); Тип
Подробности
- Сбор информации
commitполезен, если вы хотите видеть её в HTML-отчёте (или отчёте стороннего инструмента). - Сбор информации
diffполезен для дополнения отчёта фактическим diff исходного кода. Эта информация может использоваться для предоставления рекомендаций по исправлению теста.
примечаниеЗначения этих параметров по умолчанию зависят от среды. Когда тесты запускаются в CI, где безопасно получать информацию Git, значение по умолчанию —
true, в противном случае —false.
примечаниеСтруктура метаданных коммита Git может измениться.
expect
Конфигурация библиотеки проверок expect. Подробнее о различных тайм-аутах.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
expect: {
timeout: 10000,
toMatchSnapshot: {
maxDiffPixels: 10,
},
},
}); Тип
-
Object
-
timeoutnumber (необязательно)Тайм-аут по умолчанию для асинхронных проверок expect в миллисекундах; по умолчанию — 5000 мс.
-
toHaveScreenshotObject (необязательно)-
animations"allow" | "disabled" (необязательно)См. animations в page.screenshot(). По умолчанию —
"disabled". -
caret"hide" | "initial" (необязательно)См. caret в page.screenshot(). По умолчанию —
"hide". -
maxDiffPixelsnumber (необязательно)Допустимое количество отличающихся пикселей; по умолчанию не задано.
-
maxDiffPixelRationumber (необязательно)Допустимое отношение количества отличающихся пикселей к общему количеству пикселей, от
0до1; по умолчанию не задано. -
scale"css" | "device" (необязательно)См. scale в page.screenshot(). По умолчанию —
"css". -
stylePathstring | Array<string> (необязательно)См. style в page.screenshot().
-
thresholdnumber (необязательно)Допустимая воспринимаемая разница цветов одного и того же пикселя на сравниваемых изображениях — от
0(строгая) до1(мягкая). Компаратор"pixelmatch"вычисляет разницу цветов в цветовом пространстве YIQ и по умолчанию присваивает параметруthresholdзначение0.2. -
pathTemplatestring (необязательно)Шаблон, определяющий расположение снимков экрана. Подробности см. в testConfig.snapshotPathTemplate.
Конфигурация метода expect(page).toHaveScreenshot().
-
-
toMatchAriaSnapshotObject (необязательно)-
pathTemplatestring (необязательно)Шаблон, определяющий расположение снимков accessibility-дерева. Подробности см. в testConfig.snapshotPathTemplate.
-
children"contain" | "equal" | "deep-equal" (необязательно)Определяет, как сопоставляются дочерние элементы корня снимка с фактическим деревом доступности. Это эквивалентно добавлению свойства
/childrenв начало каждого шаблона снимка aria. Отдельные снимки могут переопределить это значение, указав свойство/children.
Конфигурация метода expect(locator).toMatchAriaSnapshot().
-
-
toMatchSnapshotObject (необязательно)-
maxDiffPixelsnumber (необязательно)Допустимое количество отличающихся пикселей; по умолчанию не задано.
-
maxDiffPixelRationumber (необязательно)Допустимое отношение количества отличающихся пикселей к общему количеству пикселей, от
0до1; по умолчанию не задано. -
thresholdnumber (необязательно)Допустимая воспринимаемая разница цветов одного и того же пикселя на сравниваемых изображениях — от
0(строгая) до1(мягкая). Компаратор"pixelmatch"вычисляет разницу цветов в цветовом пространстве YIQ и по умолчанию присваивает параметруthresholdзначение0.2.
Конфигурация метода expect(value).toMatchSnapshot().
-
-
toPassObject (необязательно)-
intervalsArray<number> (необязательно)Интервалы проверки метода toPass в миллисекундах.
-
timeoutnumber (необязательно)Тайм-аут метода toPass в миллисекундах.
Конфигурация метода expect(value).toPass().
-
-
failOnFlakyTests
Завершать ли работу с ошибкой, если какие-либо тесты помечены как нестабильные. Полезно в CI.
Также доступно в командной строке с параметром --fail-on-flaky-tests.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
failOnFlakyTests: !!process.env.CI,
}); Тип
forbidOnly
Завершать ли работу с ошибкой, если какие-либо тесты или группы помечены как test.only() или test.describe.only(). Полезно в CI.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
forbidOnly: !!process.env.CI,
}); Тип
fullyParallel
Playwright Test запускает тесты параллельно. Для этого он запускает несколько рабочих процессов, работающих одновременно. По умолчанию параллельно выполняются файлы тестов. Тесты в одном файле выполняются по порядку в одном рабочем процессе.
С помощью этого параметра можно настроить одновременное выполнение всех тестов во всех файлах.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
fullyParallel: true,
}); Тип
globalSetup
Путь к файлу глобальной настройки. Этот файл будет подключён и выполнен до запуска всех тестов. Он должен экспортировать одну функцию, принимающую аргумент FullConfig. Чтобы указать несколько файлов глобальной настройки, передайте массив путей.
Подробнее о глобальной настройке и очистке.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
globalSetup: './global-setup',
}); Тип
globalTeardown
Путь к файлу глобальной очистки. Этот файл будет подключён и выполнен после всех тестов. Он должен экспортировать одну функцию. См. также testConfig.globalSetup. Чтобы указать несколько файлов глобальной очистки, передайте массив путей.
Подробнее о глобальной настройке и очистке.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
globalTeardown: './global-teardown',
}); Тип
globalTimeout
Максимальное время в миллисекундах, в течение которого может выполняться весь набор тестов. Нулевой тайм-аут (значение по умолчанию) отключает это ограничение. Полезно в CI, чтобы неисправная настройка не выполнялась слишком долго и не расходовала ресурсы. Подробнее о различных тайм-аутах.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
globalTimeout: process.env.CI ? 60 * 60 * 1000 : undefined,
}); Тип
grep
Фильтр для запуска только тестов, заголовки которых соответствуют одному из шаблонов. Например, grep: /cart/ запустит только тесты, в заголовках которых есть "cart". Также доступно в командной строке с параметром -g. Регулярное выражение проверяется по строке, состоящей из имени проекта, имени файла теста, имени test.describe (если есть), имени теста и тегов теста, разделённых пробелами, например chromium my-test.spec.ts my-suite my-test.
Параметр grep также полезен для добавления тегов к тестам.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
grep: /smoke/,
}); Тип
grepInvert
Фильтр для запуска только тестов, заголовки которых не соответствуют ни одному из шаблонов. Это противоположность testConfig.grep. Также доступно в командной строке с параметром --grep-invert.
Параметр grepInvert также полезен для добавления тегов к тестам.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
grepInvert: /manual/,
}); Тип
ignoreSnapshots
Пропускать ли проверки снимков, например expect(value).toMatchSnapshot() и await expect(page).toHaveScreenshot().
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
ignoreSnapshots: !process.env.CI,
}); Тип
maxFailures
Максимальное количество ошибок тестирования за весь запуск набора тестов. После достижения этого числа тестирование прекратится и завершится с ошибкой. Значение ноль (по умолчанию) отключает это поведение.
Также доступно в командной строке с параметрами --max-failures и -x.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
maxFailures: process.env.CI ? 1 : 0,
}); Тип
metadata
Метаданные содержат пары ключ-значение, которые включаются в отчёт. Например, JSON-отчёт будет содержать метаданные в формате JSON.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
metadata: { title: 'acceptance tests' },
}); Тип
name
Имя конфигурации отображается в отчёте и во время выполнения тестов, если оно не переопределено с помощью testProject.name.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
name: 'acceptance tests',
}); Тип
outputDir
Каталог для файлов, создаваемых во время выполнения тестов. По умолчанию — <package.json-directory>/test-results.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
outputDir: './test-results',
}); Тип
Подробности
Этот каталог очищается при запуске. При запуске теста внутри testConfig.outputDir создаётся уникальный подкаталог, что гарантирует отсутствие конфликтов между параллельно выполняющимися тестами. К этому каталогу можно обратиться через testInfo.outputDir и testInfo.outputPath().
Ниже приведён пример использования testInfo.outputPath() для создания временного файла.
import { test, expect } from '@playwright/test';
import fs from 'fs';
test('example test', async ({}, testInfo) => {
const file = testInfo.outputPath('temporary-file.txt');
await fs.promises.writeFile(file, 'Put some data to the file', 'utf8');
}); preserveOutput
Сохранять ли вывод тестов в testConfig.outputDir. По умолчанию — 'always'.
-
'always'— сохранять вывод всех тестов; -
'never'— не сохранять вывод ни одного теста; -
'failures-only'— сохранять вывод только неудачных тестов.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
preserveOutput: 'always',
}); Тип
- "always" | "never" | "failures-only"
projects
Playwright Test поддерживает одновременный запуск нескольких проектов тестирования. Подробнее см. в разделе TestProject.
Использование
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
{ name: 'chromium', use: devices['Desktop Chrome'] }
]
}); Тип
quiet
Подавлять ли вывод stdout и stderr тестов.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
quiet: !!process.env.CI,
}); Тип
repeatEach
Количество повторных запусков каждого теста; полезно для отладки нестабильных тестов.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
repeatEach: 3,
}); Тип
reportSlowTests
Создавать ли отчёт о медленных файлах тестов. Передайте null, чтобы отключить эту функцию.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
reportSlowTests: null,
}); Тип
Подробности
Файлы тестов, выполнение которых заняло более threshold миллисекунд, считаются медленными; в отчёт включаются самые медленные из них, но не более max. Если для max передать ноль, в отчёт попадут все файлы тестов, превысившие порог.
reporter
Список используемых репортёров. Каждый репортёр может быть:
- Встроенным репортёром, например
'list'или'json'. - Именем модуля, например
'my-awesome-reporter'. - Относительным путём к репортёру, например
'./reporters/my-awesome-reporter.js'.
Параметры репортёра можно передать в виде кортежа, например ['json', { outputFile: './report.json' }]. Если свойство не указано, Playwright использует репортёр 'dot', когда задана переменная среды CI, и репортёр 'list' в противном случае.
Подробнее см. в руководстве по репортёрам.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: 'line',
}); Тип
- string | Array<Object> | "list" | "dot" | "line" | "github" | "json" | "junit" | "null" | "html" | "perfetto"
respectGitIgnore
Пропускать ли записи из .gitignore при поиске файлов тестов. По умолчанию, если явно не заданы ни testConfig.testDir, ни testProject.testDir, Playwright будет игнорировать все файлы тестов, соответствующие записям .gitignore.
Использование
testConfig.respectGitIgnore
Тип
retries
Максимальное количество повторных попыток для неудачных тестов. По умолчанию неудачные тесты не повторяются. Подробнее о повторных запусках тестов.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
retries: 2,
}); Тип
retryStrategy
Определяет, когда повторяются неудачные тесты. По умолчанию — 'immediate'.
-
'immediate'— Неудачный тест повторно запускается, как только становится доступен рабочий процесс, вперемежку с остальными тестами запуска. Это значение используется по умолчанию. -
'isolated'— Повторные запуски выполняются в конце, после завершения всех остальных тестов, по одному в одном рабочем процессе. Это сводит к минимуму взаимное влияние повторно запускаемых тестов и остальной части набора, но увеличивает общее время выполнения.
Подробнее о повторном запуске тестов.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
retries: 2,
retryStrategy: 'isolated',
}); Тип
- "immediate" | "isolated"
shard
Разбейте тесты на группы и выполните только выбранную группу. Укажите значение в формате с нумерацией от единицы, например { total: 5, current: 2 }.
Узнайте больше о параллельном выполнении и разбиении на группы в Playwright Test.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
shard: { total: 10, current: 3 },
}); Тип
snapshotPathTemplate
Этот параметр задаёт шаблон, определяющий расположение снимков, создаваемых с помощью expect(page).toHaveScreenshot(), expect(locator).toMatchAriaSnapshot() и expect(value).toMatchSnapshot().
Шаблоны для каждого утверждения можно настроить отдельно в testConfig.expect.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './tests',
// Single template for all assertions
snapshotPathTemplate: '{testDir}/__screenshots__/{testFilePath}/{arg}{ext}',
// Assertion-specific templates
expect: {
toHaveScreenshot: {
pathTemplate: '{testDir}/__screenshots__{/projectName}/{testFilePath}/{arg}{ext}',
},
toMatchAriaSnapshot: {
pathTemplate: '{testDir}/__snapshots__/{testFilePath}/{arg}{ext}',
},
},
}); Тип
Подробности
Значение может содержать «токены», которые во время выполнения теста заменяются фактическими значениями.
Рассмотрим следующую структуру файлов:
playwright.config.ts
tests/
└── page/
└── page-click.spec.ts И следующий page-click.spec.ts, использующий вызов toHaveScreenshot():
import { test, expect } from '@playwright/test';
test.describe('suite', () => {
test('test should work', async ({ page }) => {
await expect(page).toHaveScreenshot(['foo', 'bar', 'baz.png']);
});
}); Список поддерживаемых токенов:
-
{arg}— относительный путь к снимку без расширения. Он задаётся аргументами, переданными вtoHaveScreenshot(),toMatchAriaSnapshot()илиtoMatchSnapshot(); если вызов выполнен без аргументов, используется автоматически сгенерированное имя снимка.- Значение:
foo/bar/baz
- Значение:
-
{ext}— расширение снимка (с начальной точкой).- Значение:
.png
- Значение:
-
{platform}— значениеprocess.platform. -
{projectName}— имя проекта, очищенное для использования в файловой системе, если оно задано.- Значение:
''(пустая строка).
- Значение:
-
{snapshotDir}— значение testProject.snapshotDir проекта.- Значение:
/home/playwright/tests(посколькуsnapshotDirне задано в конфигурации, по умолчанию используетсяtestDir)
- Значение:
-
{testDir}— значение testProject.testDir проекта.- Значение:
/home/playwright/tests(абсолютный путь, так какtestDirразрешается относительно каталога с файлом конфигурации)
- Значение:
-
{testFileDir}— каталоги в относительном пути отtestDirдо файла теста.- Значение:
page
- Значение:
-
{testFileBaseName}— имя файла теста без последнего расширения.- Значение:
page-click.spec
- Значение:
-
{testFileName}— имя файла теста с расширением.- Значение:
page-click.spec.ts
- Значение:
-
{testFilePath}— относительный путь отtestDirдо файла теста.- Значение:
page/page-click.spec.ts
- Значение:
-
{testName}— заголовок теста, очищенный для использования в файловой системе, включая описания родительских групп, но без имени файла.- Значение:
suite-test-should-work
- Значение:
Перед каждым токеном можно указать один символ, который будет использоваться только если значение этого токена не пустое.
Рассмотрим следующую конфигурацию:
import { defineConfig } from '@playwright/test';
export default defineConfig({
snapshotPathTemplate: '__screenshots__{/projectName}/{testFilePath}/{arg}{ext}',
testMatch: 'example.spec.ts',
projects: [
{ use: { browserName: 'firefox' } },
{ name: 'chromium', use: { browserName: 'chromium' } },
],
}); В этой конфигурации:
- У первого проекта нет имени, поэтому его снимки будут храниться в
<configDir>/__screenshots__/example.spec.ts/.... - У второго проекта есть имя, поэтому его снимки будут храниться в
<configDir>/__screenshots__/chromium/example.spec.ts/... - Поскольку
snapshotPathTemplateразрешается в относительный путь, он будет разрешён относительноconfigDir. - В качестве разделителей пути на любой платформе можно использовать косые черты
"/".
tag
Тег или теги, добавляемые перед каждым тестом в отчёте. Полезно помечать запуск тестов, чтобы различать среды CI.
Обратите внимание: каждый тег должен начинаться с символа @. Подробнее о добавлении тегов.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
tag: process.env.CI_ENVIRONMENT_NAME, // for example "@APIv2"
}); Тип
testDir
Каталог, в котором рекурсивно выполняется поиск файлов тестов. По умолчанию используется каталог файла конфигурации.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './tests/playwright',
}); Тип
testIgnore
Файлы, соответствующие одному из этих шаблонов, не запускаются как файлы тестов. Сопоставление выполняется по абсолютному пути к файлу. Строки рассматриваются как шаблоны glob.
Например, '**/test-assets/**' исключит любые файлы из каталога test-assets.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
testIgnore: '**/test-assets/**',
}); Тип
testMatch
Как файлы тестов запускаются только файлы, соответствующие одному из этих шаблонов. Сопоставление выполняется по абсолютному пути к файлу. Строки рассматриваются как шаблоны glob.
По умолчанию Playwright ищет файлы, соответствующие следующему шаблону glob: **/*.@(spec|test).?(c|m)[jt]s?(x). Это означает файлы JavaScript или TypeScript с суффиксом ".test" или ".spec", например login-screen.wrong-credentials.spec.ts.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
testMatch: /.*\.e2e\.js/,
}); Тип
timeout
Тайм-аут для каждого теста в миллисекундах. По умолчанию — 30 секунд.
Это базовый тайм-аут для всех тестов. Кроме того, для каждого теста можно задать собственный тайм-аут с помощью test.setTimeout(). Подробнее о различных тайм-аутах.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
timeout: 5 * 60 * 1000,
}); Тип
tsconfig
Путь к единому файлу tsconfig, применяемому ко всем импортированным файлам. По умолчанию для каждого импортированного файла отдельно ищется файл tsconfig. Обратите внимание: свойство tsconfig не действует, пока загружается файл конфигурации или любая из его зависимостей. Игнорируется, если указан параметр командной строки --tsconfig.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
tsconfig: './tsconfig.test.json',
}); Тип
updateSnapshots
Следует ли обновлять ожидаемые снимки, используя фактические результаты запуска тестов. По умолчанию — 'missing'.
-
'all'— все выполняемые тесты обновляют снимки. -
'changed'— все выполняемые тесты обновляют снимки, которые не совпали. Совпавшие снимки не обновляются. Также создаются отсутствующие снимки. -
'missing'— создаются отсутствующие снимки, например при написании нового теста и его первом запуске. Это значение используется по умолчанию. -
'none'— снимки не обновляются.
Подробнее о снимках.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
updateSnapshots: 'missing',
}); Тип
- "all" | "changed" | "missing" | "none"
updateSourceMethod
Определяет способ обновления снимков в исходном коде.
-
'patch'— создаёт файл с унифицированным diff, который можно использовать для последующего обновления исходного кода. Это значение используется по умолчанию. -
'3way'— добавляет в исходный код маркеры конфликта слияния. Это позволяет пользователю вручную выбрать нужные изменения, как при разрешении конфликта слияния в IDE. -
'overwrite'— перезаписывает исходный код новыми значениями снимков.
Использование
testConfig.updateSourceMethod
Тип
- "overwrite" | "3way" | "patch"
use
Глобальные параметры для всех тестов, например testOptions.browserName. Подробнее о конфигурации и см. доступные параметры.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
browserName: 'chromium',
},
}); Тип
webServer
Запускает один или несколько веб-серверов разработки на время выполнения тестов.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
webServer: {
command: 'npm run start',
url: 'http://localhost:3000',
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
},
use: {
baseURL: 'http://localhost:3000/',
},
}); Теперь для навигации по странице можно использовать относительный путь:
import { test } from '@playwright/test';
test('test', async ({ page }) => {
// This will result in http://localhost:3000/foo
await page.goto('/foo');
}); Можно запустить несколько веб-серверов (или фоновых процессов):
import { defineConfig } from '@playwright/test';
export default defineConfig({
webServer: [
{
command: 'npm run start',
url: 'http://localhost:3000',
name: 'Frontend',
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
},
{
command: 'npm run backend',
url: 'http://localhost:3333',
name: 'Backend',
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
}
],
use: {
baseURL: 'http://localhost:3000',
},
}); Если веб-сервер работает на портах, которые могут меняться, используйте wait, чтобы получить номер порта:
import { defineConfig } from '@playwright/test';
export default defineConfig({
webServer: {
command: 'npm run start',
wait: {
stdout: /Listening on port (?<my_server_port>\d+)/
},
},
}); import { test, expect } from '@playwright/test';
test.use({ baseUrl: `http://localhost:${process.env.MY_SERVER_PORT ?? 3000}` });
test('homepage', async ({ page }) => {
await page.goto('/');
}); Тип
-
Object | Array<Object>
-
commandstringКоманда оболочки для запуска. Например,
npm run start.. -
cwdstring (необязательно)Рабочий каталог запущенного процесса; по умолчанию используется каталог файла конфигурации.
-
envObject<string, string> (необязательно)Переменные среды, задаваемые для команды; по умолчанию
process.env. -
gracefulShutdownObject (необязательно)-
signal"SIGINT" | "SIGTERM" -
timeoutnumber
Способ завершения процесса. Если не задан, группа процессов принудительно получает сигнал
SIGKILL. Если задано значение{ signal: 'SIGTERM', timeout: 500 }, группе процессов отправляется сигналSIGTERM, а через 500 мс —SIGKILL, если процесс не завершился. Вместо этого в качестве сигнала можно использоватьSIGINT. Если тайм-аут задан как0, сигналSIGKILLотправлен не будет. Windows не поддерживает сигналыSIGTERMиSIGINT, поэтому в Windows этот параметр игнорируется. Обратите внимание: для остановки контейнера Docker требуетсяSIGTERM. -
-
ignoreHTTPSErrorsboolean (необязательно)Игнорировать ли ошибки HTTPS при получении
url. По умолчанию —false. -
namestring (необязательно)Задаёт пользовательское имя веб-сервера. Это имя будет добавляться к сообщениям журнала. По умолчанию —
[WebServer]. -
portnumber (необязательно)Порт, на котором должен быть доступен HTTP-сервер. Ожидание продолжается, пока сервер не начнёт принимать подключения. Необходимо указать
portилиurl. -
reuseExistingServerboolean (необязательно)Если значение равно true, при наличии будет повторно использоваться существующий сервер на
portилиurl. Если на этомportилиurlсервер не запущен, будет выполнена команда запуска нового сервера. Если задано значениеfalse, будет выброшена ошибка, если существующий процесс прослушиваетportилиurl. Обычно этому параметру следует задавать значение!process.env.CI, чтобы разрешить использование локального сервера разработки при запуске тестов на локальном компьютере. -
stderr"pipe" | "ignore" (необязательно)Следует ли перенаправлять stderr команды в stderr процесса или игнорировать его. По умолчанию —
"pipe". -
stdout"pipe" | "ignore" (необязательно)Если задано значение
"pipe", stdout команды будет перенаправлен в stdout процесса. Если задано значение"ignore", stdout команды будет проигнорирован. Значение по умолчанию —"ignore". -
waitObject (необязательно)-
stdoutRegExp (необязательно)Регулярное выражение, которое необходимо обнаружить в
stdoutвывода команды. Именованные группы захвата сохраняются в среде; например,/Listening on port (?<my_server_port>\d+)/сохранит номер порта вprocess.env['MY_SERVER_PORT']. -
stderrRegExp (необязательно)Регулярное выражение, которое необходимо обнаружить в
stderrвывода команды. Именованные группы захвата сохраняются в среде; например,/Listening on port (?<my_server_port>\d+)/сохранит номер порта вprocess.env['MY_SERVER_PORT'].
Команда считается запущенной только после появления указанного вывода.
-
-
timeoutnumber (необязательно)Время ожидания запуска процесса и его готовности в миллисекундах. По умолчанию — 60000.
-
urlstring (необязательно)URL HTTP-сервера, который должен возвращать код состояния 2xx, 3xx, 400, 401, 402 или 403, когда сервер готов принимать подключения. Перенаправления (коды состояния 3xx) отслеживаются, после чего проверяется новый адрес. Необходимо указать
portилиurl.
-
Подробности
Если указан порт, Playwright Test будет ждать, пока он станет доступен на 127.0.0.1 или ::1, прежде чем запускать тесты. Если указан URL, Playwright Test будет ждать, пока URL не вернёт код состояния 2xx, 3xx, 400, 401, 402 или 403, прежде чем запускать тесты.
Для непрерывной интеграции можно использовать параметр reuseExistingServer: !process.env.CI, который не использует существующий сервер в CI. Чтобы видеть stdout, задайте переменную среды DEBUG=pw:webserver.
Значение port (но не url) передаётся в Playwright как testOptions.baseURL. Например, порт 8080 задаёт baseURL со значением http://localhost:8080. Если webServer задан как массив, необходимо явно настроить baseURL (даже если в массиве только один элемент).
примечаниеТакже рекомендуется задать в конфигурации testOptions.baseURL, чтобы тесты могли использовать относительные URL.
workers
Максимальное количество параллельных рабочих процессов, используемых для параллельного выполнения тестов. Можно также задать в процентах от числа логических ядер ЦП, например '50%'.
Playwright Test использует рабочие процессы для выполнения тестов. Всегда используется как минимум один рабочий процесс, но большее их количество позволяет ускорить выполнение тестов.
По умолчанию используется половина числа логических ядер ЦП. Узнайте больше о параллельном выполнении и разбиении на группы в Playwright Test.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
workers: 3,
}); Тип
Устарело
snapshotDir
Не рекомендуетсяИспользуйте testConfig.snapshotPathTemplate для настройки путей к снимкам.
Базовый каталог, относительно файла конфигурации, для файлов снимков, созданных с помощью toMatchSnapshot. По умолчанию используется testConfig.testDir.
Использование
import { defineConfig } from '@playwright/test';
export default defineConfig({
snapshotDir: './snapshots',
}); Тип
Подробности
Каталог для каждого теста доступен через testInfo.snapshotDir и testInfo.snapshotPath().
Этот путь служит базовым каталогом для каталога снимков каждого файла теста. Если задать snapshotDir равным 'snapshots', значение testInfo.snapshotDir будет разрешаться в snapshots/a.spec.js-snapshots.
© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-testconfig