Тег выбирает тесты, но не доказывает покрытие.
Считайте фильтры явным договором отбора и указывайте исключённые случаи.

Переведенное издание. Технические идентификаторы остаются в своей первоначальной форме.

Конвейер запускает @critical и становится зелёным. Кто-то называет это полной регрессией. Тег выбрал часть, не доказав наличие всех важных сценариев. Отбор и оценка риска различаются.
Руководство следует документации аннотаций Playwright с двумя вымышленными локальными тестами: для небольшой проверки и широкой инспекции. Нет утверждений о реальном конвейере или проценте покрытия. Сначала показываем состав.
Определите значение тега
Playwright допускает теги в деталях или названии. Они начинаются с @ и фильтруют тесты. Командная договорённость должна кратко объяснять назначение, например согласованный набор для конкретного барьера изменений.
@critical не должен означать мнение последнего автора. Назовите владельца правила, включённые сценарии и осознанные исключения. Добавить строку легко; обосновать членство сложнее.
import { test, expect } from '@playwright/test';
test('demo title contract', { tag: '@demo-review' }, async () => {
expect('Demo review').toBe('Demo review');
});
test('demo archive contract', { tag: '@demo-wide' }, async () => {
expect(['draft', 'archive']).toContain('archive');
});Примеры показывают метаданные и отбор, не приложение или полезное продуктовое покрытие. Выведите список до запуска:
npx playwright test demos/selection.spec.mjs --grep @demo-review --listЛокально выбирается только контракт заголовка. Запуск проходит одну вымышленную проверку. Исключённый архивный контракт не считается выполненным доказательством, хотя присутствует в исходниках.
Отделите отбор от пропуска и ожидаемой ошибки
skip и fixme не запускаются. fail запускается с ожидаемой ошибкой; неожиданный успех сообщается. Это не отсутствие из-за фильтра.
Отдельно показывайте выбранные, выполненные, пропущенные и ожидаемо ошибочные случаи. Не складывайте их в успокаивающее число. Тишина может означать исключение, отключение или реальный успех.
Фокус тоже ограничивает набор: при наличии сфокусированных тестов выполняются только они. Локальная отладка не должна незаметно сужать общий запуск. Проверяйте изменение отбора вместе с кодом.
Проверяйте состав при изменениях
Новый сценарий требует нужного членства. Название, тег или регулярное выражение меняют отбор без изменения тела. Используйте список раннера с точной командой конвейера.
Сложные фильтры требуют своих проверок. Имя файла или подпись панели не доказывает состав. Сохраните команду, важную конфигурацию и выбранные имена с результатом.
Используйте результат в его пределах
Малый барьер даёт быстрый ответ, пока широкий набор работает отдельно. Это план, не доказательство обнаружения всего. Разделение определяет риск продукта; пересматривайте его с новыми функциями и сбоями.
AnyTest описывает агентов, открывающих сценарии и создающих тесты для ревью. Проверяйте место теста в наборе и его проверки. Интерфейс тегов AnyTest не заявляется. Честный результат не заимствует уверенность у невыполненных тестов.
Общие вопросы
Доказывает ли зелёный набор по тегу полное покрытие?
Нет. Он относится только к выбранным выполненным проверкам в данной конфигурации.
Равен ли отфильтрованный тест пропущенному?
Нет. Отбор, skip/fixme и ожидаемая ошибка - разные состояния отчёта.