Могу ли я упаковать PHPUnit как phar? - PullRequest
6 голосов
/ 06 сентября 2011

Я хотел бы упаковать PHPUnit и различные другие тестовые зависимости в phar и поместить их в svn.Таким образом, я могу запустить phpunit на любом клиентском компьютере без необходимости использования груши.Можно ли это сделать?

Ответы [ 2 ]

7 голосов
/ 07 сентября 2011

Текущий статус:

Работа над phpunit.phar началась в phpunit repo, но сгенерированный phar нестабилен и не завершен.

Если он попадет туда, будут официальные релизы


Оригинальный ответ:

Если вы можете, я дам вам 500 повторений, 100 баксов и моего первенца ... ну нет ... только первые два.

Если быть серьезным:

Я не давал покоя создателю PHPUnit по этой теме, по крайней мере, на 3 конференциях сейчас и хорошо ... не похоже, что это возможно.

Есть несколько проблем с этим. Прежде всего, PHPUnit порождает новые php-процессы для изоляции тестов. Проблема в том, что phar не может определить, какой исполняемый файл php вызвал его. Поэтому, если вы запустите phpunit с пользовательской скомпилированной версией, она будет использовать php «по умолчанию», установленный для запуска изолированных тестов.

Во-вторых, насколько мне известно, и мне сказали, что невозможно поместить статические файлы, такие как изображения и CSS в phar. Что делает генерацию покрытия кода намного сложнее. Это потребует некоторой работы над этой частью.

Есть и другие проблемы, которые я не могу вспомнить, точно напомню, что именно право xDebug обеспечивало покрытие кода для phars (и phpunit, полагаясь на то, что он не генерирует избыточный код для своего собственного кода и т. Д.) И другие вещи.

There once was a phar но, насколько я понимаю, это просто не работает с текущим состоянием phpunit и никогда действительно не работало полностью.


Я не говорю, что это невозможно, просто разные люди уже отказались от создания phpunit.phar, включая парня, который его разрабатывает. (Это только мое впечатление, я, конечно, не могу говорить за Себастьяна здесь и могу быть совершенно не прав, примите это как небольшой отказ от ответственности)

Помещение PHPUnit в SVN

Вам не нужно создавать .phar для этого!

Для моей компании я поддерживаю svnd версию PHPUnit. Это не рекомендуемый способ его использования, но он работает без особых проблем!

Следуйте инструкциям "using from a git checkout" на сайте phpunit github . Затем вам нужно поместить эти файлы в ваш php include путь, и он заработает.

Мое предложение было бы создать собственный phpunit.sh, который изменяет путь включения, а затем вызывает исходный phpunit.sh, передавая все аргументы. Это немного трудоемко, но работает довольно хорошо, и это намного проще, чем создание phar-архива:)

1 голос
/ 12 августа 2015

Со страницы new PHPUnit :

Мы распространяем PHP-архив (PHAR), который содержит все необходимое для использования PHPUnit.Просто скачайте его с здесь , сделайте его исполняемым и вставьте его, например, в $ PATH ......

...