Задать вопрос
@WEBIVAN

При запуске одного теста в PHPUnit инициализуется ли только его dataProvider или все?

Собственно по мере увеличения количества тестов и количества провайдеров данных, время запуска тестирования существенно увеличивается.
При запуске одного теста
phpunit --filter someTest tests/ExampleTest.php
инициализируется ли dataProvider только для someTest или все dataProviderы в файле ExampleTest.php?
  • Вопрос задан
  • 988 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Deroy
@Deroy
Senior Developer, Software Architect
теоритически не должны, так как провайдеры мапятся к тесту аннотациями и внутри phpUnit происходит примерно следующее:

1) загружается класс теста
2) он реверсится, находятся все методы тестов
а вот дальше возможны два варианта развития событий:
а)
3) начинается цикл по тестам,
4) запуская каждый тест, сначала ревёрсятся его аннотации и вызываются дата-провайдеры
5) запускается сам тест и ему передаются результаты работы провайдеров
б)
3) реверсятся все аннотации всех тестов
4) выполняются все дата провайдеры
5) запускаются тесты.

Собственно, пардон за наглость, но проще проверить экспериментально. или почитать код фреймворка. заодно нам расскажешь. =)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы