SlavaAurim
@SlavaAurim
Веб-программист и интернет-маркетолог

Почему юнит-тесты PHP запускают из командной строки?

Насколько я понял, большинство php фреймворков для модульного тестирования запускают тесты из командной строки (то есть из терминала). Почему так? Почему бы на запускать тот же тестовый php скрипт из браузера? Например так: http:// project-host/tests/tests.php
Где-то я читал про "зелёные полоску", которая показывать процент пройденных тестов, это ведь в браузере только можно вывести красивый отчет о тестах? Тут ещё такая проблема получается, что на моём Макбуке в системе установлен php 5.3, а в браузере у меня сервером работает MAMP и там PHP 5.6. Как тогда запускать тесты из терминала именно в php 5.6?
  • Вопрос задан
  • 338 просмотров
Пригласить эксперта
Ответы на вопрос 3
werevolff
@werevolff
Зачем вам нужны юнит-тесты, если вы не понимаете что это такое?

Тесты в PHP запускаются в консоли по той же причине, что и во многих других языках. Надо понимать, что PHP начинал не как настоящий язык программирования, а как шаблонизатор для cgi приложений. Сейчас PHP представляет собой язык программирования. То что вы используете его в качестве шаблонизатора на своём маке, чести вам не делает.

И, да, мампы, лампы и вампы - не лучший вариант для программистов PHP, которым нужны юнит-тесты. Попробуйте Docker или Vagrant.

И ещё маленькое дополнение: PHP имеет низкий порог вхождения. Это означает, что большинство простых пользователей компьютера с минимальным трудом смогут создать на нём страничку. Им юниттесты точно не нужны. Как и большинству разработчиков, которые делают сайты на CMS или фреймворках. А тем, кому реально нужны тесты, не нужен WebUI для них.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
"Где-то я читал про "зелёные полоску", которая показывать процент пройденных тестов, это ведь в браузере только можно сделать - красивый отчет о тестах?"

Юнит тесты, выполняющиеся из консоли, легко могут сами по себе генерировать красивый html отчет, даже с ajax, который вы будете смотреть из браузера.

У вас какой-то мусор в терминологии и представлении как все работает.

Браузер - НЕ УМЕЕТ выполнять php скрипты. Браузер умеет парсить html и выполнять javascript из него. Поэтому запускать php юнит тесты в браузере невозможно.

Можно поставить какой-нить движок, типа teamcity/jenkins/hudson, в котором настроить джобы, и тогда их можно "запускать через браузер". Но для выполнения PHP скрипта, ему нужен php, а не браузер.
Ответ написан
Комментировать
Antonchik
@Antonchik
Программирую на HTML
Если нужно графически запускать тесты можно использовать phpstorm выглядит это как то такrun_console.png
Ответ написан
Ваш ответ на вопрос

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

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