Как отфильтровать несколько тестов в PHPUnit?

Я могу запустить один тест из набора, используя опцию --filter.

Мне интересно, есть ли способ динамически запускать несколько тестов в пакете?

Спасибо

что вы имеете в виду под динамично?

ᴄʀᴏᴢᴇᴛ 11.06.2018 16:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
1 718
5

Ответы 5

Параметр --filter запускает тесты, имя которых соответствует заданному шаблону регулярного выражения, поэтому вы должны иметь возможность выбрать несколько тестов, указав подходящее регулярное выражение в качестве аргумента.

См. Документацию для Средство запуска тестов командной строки PHPUnit

Я рекомендую использовать "spatie / phpunit-watcher" (https://github.com/spatie/phpunit-watcher), который позволит вам выполнять этот тип фильтрации

В итоге я создал свой собственный файл конфигурации со всеми необходимыми мне тестами, а затем передал его через --configuration в PHPUnit.

Простое регулярное выражение для фильтрации нескольких тестов может выглядеть как --filter '/test1|test2|test4/'. Это будет соответствовать любым тестам, которые содержат 'test1' 'test2' или 'test4', поэтому, например, test43 будет включен, но test3 не будет запущен. Проверка чувствительна к регистру.

Работайте для меня:

phpunit -c phpunit.dist.xml src --filter '/NameSpace\\UserBundle/|Namespace\\OtherBundle'

Не работают у меня:

phpunit -c phpunit.dist.xml src --filter "/NameSpace\\UserBundle/|Namespace\\OtherBundle"

В двойных кавычках результат для меня: «Никаких тестов не проводилось!»

Если вы не используете фильтр \ in (для пространства имен), то двойные кавычки работают отлично, но с пространством имен \ bundle в моей настройке мне нужно использовать одинарные кавычки.

Другие вопросы по теме