Функциональные тесты Symfony2 занимают часы, чтобы закончить использование PHPUnit

В настоящее время я создаю проект с использованием symfony2, я использую поставщика PHPUnit для функционального тестирования моего кода.
Я сталкиваюсь с проблемой увеличения времени функционального тестирования по мере увеличения проектов.
Примечание: я использую приборы для загрузки для каждой функции функционального тестирования.

Мой вопрос здесь? Какова лучшая практика для реализации функционального теста, который выполняется в разумные сроки.

с другой стороны, есть ли пакет или инструмент, который я могу использовать для ускорения этого процесса?

0

Решение

Ваш вопрос сложный, и очень трудно точно сказать, проблема задержки.

Прежде всего, вы можете разделить ваши приборы, которые можно загрузить перед тестовым костюмом, и другие детали, которые можно загрузить с помощью метода setUp.

Второй совет, который действительно может ускорить процесс тестирования, — запуск нескольких потоков. Я использую «самую быструю» библиотеку, которая позволяет мне ускорить мои тесты примерно в 3-4 раза (на i7) по сравнению с одним запуском потока.

https://github.com/liuggio/fastest

find tests/ -name "*Test.php" | ./bin/fastest "bin/phpunit -c app {};"
2

Другие решения

Просто добавление к аргументам для модульного / функционального теста. Поскольку я вижу, что тема о «функциональных» тестах, и если инструмент — PhpUnit, это не означает, что тесты должны быть «модульными», потому что с ним также можно делать функциональные тесты, но я считаю, что это не так. лучший выбор инструмента для функциональных испытаний.

Я рекомендую вам взглянуть на другой отличный инструмент для функциональных тестов, таких как Behat (http://behat.org). Это позволит вам не только работать с функциональными тестами более комфортно, но и использовать подход BDD (Behavior Driven Development) для вашего процесса разработки

Просто небольшой пример того, как мы используем его для функционального тестирования корзины http://www.youtube.com/watch?v=XIUmDGaaZWM

1

По вопросам рекламы [email protected]