Spec-Zone.ru › Playwright

Настройка конфигурации тестов

Введение​

Playwright предоставляет множество вариантов настройки выполнения ваших тестов. Вы можете указать эти параметры в файле конфигурации. Обратите внимание, что параметры исполнителя тестов являются главными, не помещайте их в раздел use.

Основная настройка​

Вот некоторые из наиболее распространенных параметров конфигурации.

import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  // Look for test files in the "tests" directory, relative to this configuration file.
  testDir: 'tests',

  // Run all tests in parallel.
  fullyParallel: true,

  // Fail the build on CI if you accidentally left test.only in the source code.
  forbidOnly: !!process.env.CI,

  // Retry on CI only.
  retries: process.env.CI ? 2 : 0,

  // Opt out of parallel tests on CI.
  workers: process.env.CI ? 1 : undefined,

  // Reporter to use
  reporter: 'html',

  use: {
    // Base URL to use in actions like `await page.goto('/')`.
    baseURL: 'http://127.0.0.1:3000',

    // Collect trace when retrying the failed test.
    trace: 'on-first-retry',
  },
  // Configure projects for major browsers.
  projects: [
    {
      name: 'chromium',
      use: { ...devices['Desktop Chrome'] },
    },
  ],
  // Run your local dev server before starting the tests.
  webServer: {
    command: 'npm run start',
    url: 'http://127.0.0.1:3000',
    reuseExistingServer: !process.env.CI,
  },
});
Параметр Описание
testConfig.forbidOnly Указывает, следует ли завершать выполнение с ошибкой, если какие-либо тесты помечены как test.only. Полезно при работе с CI.
testConfig.fullyParallel Все тесты во всех файлах будут выполняться параллельно. Подробнее см. Параллельность и Фрагментация.
testConfig.projects Выполнение тестов в нескольких конфигурациях или на нескольких браузерах
testConfig.reporter Используемый репортер. Подробнее о доступных репортерах см. в разделе Отчеты о тестах.
testConfig.retries Максимальное количество попыток повтора для каждого теста. Подробнее о повторах см. в разделе Повторы тестов.
testConfig.testDir Директория с тестовыми файлами.
testConfig.use Параметры с use{}
testConfig.webServer Для запуска сервера во время тестов используйте параметр webServer.
testConfig.workers Максимальное количество одновременных рабочих процессов для параллелизации тестов. Также может быть установлено в процентах от логических ядер процессора, например '50%'.. Подробнее см. Параллельность и Фрагментация.

Фильтрация тестов​

Фильтрация тестов по шаблонам glob или регулярным выражениям.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  // Glob patterns or regular expressions to ignore test files.
  testIgnore: '*test-assets',

  // Glob patterns or regular expressions that match test files.
  testMatch: '*todo-tests/*.spec.ts',
});
Параметр Описание
testConfig.testIgnore Шаблоны glob или регулярные выражения, которые следует игнорировать при поиске тестовых файлов. Например, '*test-assets'
testConfig.testMatch Шаблоны glob или регулярные выражения, которые соответствуют тестовым файлам. Например, '*todo-tests/*.spec.ts'. По умолчанию Playwright выполняет тесты из файлов .*(test|spec).(js|ts|mjs).

Расширенная настройка​

import { defineConfig } from '@playwright/test';

export default defineConfig({
  // Folder for test artifacts such as screenshots, videos, traces, etc.
  outputDir: 'test-results',

  // path to the global setup files.
  globalSetup: require.resolve('./global-setup'),

  // path to the global teardown files.
  globalTeardown: require.resolve('./global-teardown'),

  // Each test is given 30 seconds.
  timeout: 30000,

});
Параметр Описание
testConfig.globalSetup Путь к файлу глобальной настройки. Этот файл будет подключаться и выполняться перед всеми тестами. Он должен экспортировать единственную функцию.
testConfig.globalTeardown Путь к файлу глобального завершения. Этот файл будет подключаться и выполняться после всех тестов. Он должен экспортировать единственную функцию.
testConfig.outputDir Папка для артефактов тестов, таких как скриншоты, видео, трассировки и т. д.
testConfig.timeout Playwright применяет таймаут для каждого теста, по умолчанию 30 секунд. Время, потраченное на выполнение тестовой функции, фикстуры теста и хуки beforeEach, учитывается в таймауте теста.

Параметры Expect​

Настройка библиотеки утверждений expect.

import { defineConfig } from '@playwright/test';

export default defineConfig({
  expect: {
    // Maximum time expect() should wait for the condition to be met.
    timeout: 5000,

    toHaveScreenshot: {
      // An acceptable amount of pixels that could be different, unset by default.
      maxDiffPixels: 10,
    },

    toMatchSnapshot: {
      // An acceptable ratio of pixels that are different to the
      // total amount of pixels, between 0 and 1.
      maxDiffPixelRatio: 0.1,
    },
  },

});
Параметр Описание
testConfig.expect Утверждения для веб-приложений, такие как expect(locator).toHaveText(), имеют отдельный таймаут по умолчанию 5 секунд. Это максимальное время, которое expect() должен ждать, пока условие не будет выполнено. Подробнее о таймаутах тестов и expect см. здесь и о том, как установить их для отдельного теста.
expect(page).toHaveScreenshot() Настройка метода expect(locator).toHaveScreenshot().
expect(value).toMatchSnapshot() Настройка метода expect(locator).toMatchSnapshot().

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/test-configuration

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API