Почему выборочный запуск тестов Playwright может не сработать

Последние изменения: 06.07.2026

При выборочном запуске ТестОпс передает фреймворку список тестов через testplan.json. Для Playwright важен selector: он должен совпадать с актуальным fullName теста, сохраненным в ТестОпс по результатам предыдущих запусков.

Если в testplan.json попадает устаревший или некорректный selector, выборочный запуск может отработать некорректно. Ниже описаны частые причины такой ситуации.

Частые причины

Некорректная структура test plan

Если test plan сгенерирован неправильно, он будет проигнорирован, и вместо выборочного запуска будут выполнены все тесты.

Устаревший формат fullName в test plan

Такое может произойти, если раньше использовалась старая версия фреймворка, ниже v3. В этом случае тест-кейсы создавались на основе устаревших метаданных. После обновления до версии 3 фреймворк начинает формировать новые fullName, но старые значения остаются в системе. Из-за этого в test plan попадают невалидные селекторы.

Пользовательские фильтры в пайплайне

Дополнительные фильтры в пайплайне могут переопределять или ломать логику выборочного запуска. В этой статье такие случаи не рассматриваются.

Форматы FullName в Allure Playwright

Адаптер allure-playwright поддерживает два формата селекторов в test plan.

Legacy Format

Формат:

filename#test path

Пример:

{
  "version": "1.0",
  "tests": [
    {
      "id": 2283,
      "selector": "login.spec.ts#Login smoke tests Login with incorrect username @loginTest"
    }
  ]
}

Этот формат фильтрует тесты на уровне файла. Это означает, что тест Login smoke tests Login with incorrect username @loginTest будет выполнен из файла login.spec.ts.

New Format, v3 и выше

Формат:

filename:line:column

Пример:

{
  "version": "1.0",
  "tests": [
    {
      "id": 491260,
      "selector": "sample.test.ts:5:1"
    }
  ]
}

Этот формат обеспечивает точный запуск конкретного теста: будет выполнен только тест, расположенный в указанной позиции файла sample.test.ts.

Как убедиться, что test plan использует корректный формат

TestOps строит test plan на основе fullName, сохраненного в базе данных. Поэтому после перехода на Allure Playwright v3 важно повторно запустить тесты, чтобы метаданные обновились.

Не беспокойтесь: testCaseId остается одинаковым между версиями 2 и 3, поэтому связи с тест-кейсами не сломаются.

Что нужно сделать:

  1. После обновления адаптера Allure повторно запустите тесты.
  2. Загрузите результаты в TestOps и закройте launch. Это обновит метаданные и сохранит новый формат fullName.

Проверка локальной генерации test plan

Чтобы проверить, какие fullName используются в test plan:

  1. Убедитесь, что используется Allure Playwright версии 3 или выше.

Проверьте версию в package.json.

  1. Запустите тесты.
  2. Загрузите результаты в TestOps и закройте launch.

Это гарантирует, что обновленные fullName будут сохранены в системе.

  1. Сгенерируйте локальный test plan с помощью allurectl:
allurectl test-case plan \
  --output-file testplan.json \
  --query 'id=491260' \
  --endpoint https://testing.testops.cloud/ \
  --token *** \
  --project-id 12473

Пример результата:

{
  "version": "1.0",
  "tests": [
    {
      "id": 491260,
      "selector": "sample.test.ts:5:1"
    }
  ]
}

Селектор корректен, потому что содержит ссылку line:column, например 5:1, и точно указывает на определение теста в файле.

Если использовать такой test plan для запуска тестов, будет выполнен только тест с id=491260.

Помогла ли вам статья?