При выборочном запуске ТестОпс передает фреймворку список тестов через 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, поэтому связи с тест-кейсами не сломаются.
Что нужно сделать:
- После обновления адаптера Allure повторно запустите тесты.
- Загрузите результаты в TestOps и закройте launch. Это обновит метаданные и сохранит новый формат fullName.
Проверка локальной генерации test plan
Чтобы проверить, какие fullName используются в test plan:
- Убедитесь, что используется Allure Playwright версии 3 или выше.
Проверьте версию в package.json.
- Запустите тесты.
- Загрузите результаты в TestOps и закройте launch.
Это гарантирует, что обновленные fullName будут сохранены в системе.
- Сгенерируйте локальный 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.