Aleksei roxblnfk Gagarin

Aleksei roxblnfk Gagarin 

I ❤️ PHP and OpenSource.

16subscribers

22posts

goals2
1 of 50 paid subscribers
Чувствовать поддержку сообщества 💖
$33.5 of $729 raised
На следующий выпуск "В мире PHP"

Testo. Фильры

Фильтры нужны для того, чтобы сузить множество запускаемых тестов. Иначе говоря, это возможность сделать выборку по тестам перед их запуском.
Добавление фильтров является одним из важных пунктов на пути к версии 1.0.0
Теперь с гордостью можно сказать, что этот пункт закрыт. Фильтры поддерживаются на уровне фреймворка и на уровне плагина.
Система фильтрации в Testo многослойная.
1. Test Suite (флаг --suite) — глобальный уровень. Лучше сразу обозначить, что мы запускаем Unit тест и лезть в Acceptance не нужно. Это срежет большой пласт работы для следующего уровня.
2. Путь до файла (флаг --path) — отрабатывает на уровне Finder'а, когда просто сканируется структура папок и файлов. Поддерживает wildcards (звёздочки, вопросики и т.д.).
3. Токенизация. Файлы, прошедшие предыдущие фильтры начинают читаться и разбиваться на токены.
По этим токенам ищутся имена функций, методов и классов. Это ещё не исполнение файла и рефлексия здесь недоступна, но мы уже можем понять, есть ли в этих файлах тесты.
На этом этапе отрабатывает фильтр по имени теста или тест-кейса (в CLI флаг --filter).
Можно указать короткое имя функции, метода, класса или вместе (`UserTest::testCreate`), либо FQN (полное имя) функции/класса/метода.
4. После токенизации файлы выполняются пыхой, чтобы мы могли работать с рефлексией.
На уровне рефлексии система фильтров выполняет последние действия: не пропускает дальше те тесты или кейсы, которые не подходят под фильтр по имени.
Фильтры можно комбинировать.
Однотипные фильтры комбинируются оператором ИЛИ, разнотипные оператором И.
Например:
- если указать только два файла, то выполнятся оба, т.к. пройдут по критерию (Файл1 ИЛИ Файл2)
- если указать путь до файла и имя `simpleTest`, то выполнится только simpleTest из указанного файла.
Плагин
На стороне плагина теперь можно кликнуть на тест-кейс, на тест или на файл и запустить только выбранное. А ещё Дима добавил сокрытие ненужных стек-трейсов под спойлер. Выглядит офигенно и очень удобно.
Subscription levels8

Cookies

$1.46 per month

Coffee

$2.92 per month

Burger

$4.4 per month

Chicken

$7.3 per month

Pizza

$14.6 per month

Support Open Source

$73 per month

Support TESTO

$729 per month
- Your organization logo on Testo starting page

Max

$2 185 per month
Go up