Я хотел бы упаковать PHPUnit и различные другие тестовые зависимости в phar и поместить их в svn. Таким образом, я могу запускать phpunit на любой клиентской машине без необходимости груши. Это можно сделать?
Работа над phpunit.phar началась в phpunit repo
но сгенерированный phar нестабилен и не является полным.
Если он туда попадет, будут выпущены официальные выпуски
Если ты сможешь, я дам тебе 500 реп, 100 баксов и мой первый родившийся .. ну нет .. только первые два.
Быть серьезным:
Я уже начал создавать PHPUnit по этой теме, по крайней мере, на трех конференциях сейчас и хорошо. Не похоже, что это возможно.
Есть пара проблем с этим. Сначала PHPUnit запускает новые php-процессы для тестовой изоляции. Проблема заключается в том, что phar не может определить, какой именно исполняемый файл php его назвал. Поэтому, если вы запустите phpunit с пользовательской скомпилированной версией, он будет использовать установленную по умолчанию «php» для запуска изолированных тестов.
Во-вторых, насколько мне известно и было сказано, невозможно поставить статические файлы, такие как изображения и css, в phar. Это делает создание кода более сложным. Для этого потребуется некоторая работа над этой частью.
Есть и другие проблемы, которые я не могу вспомнить, точно помню, как правильно иметь дело с xDebug, способным обеспечить покрытие кода для phars (и phpunit, полагаясь на то, что не генерирует избыток для своего собственного кода и т. Д.) И другие вещи.
There once was a phar
но из моего понимания, что просто не работает с текущим состоянием phpunit и никогда не работал полностью.
Я не говорю, что это невозможно сделать только потому, что разные люди уже отказались от создания phpunit.phar, включая парня, как его развивает. (Это просто мое впечатление, я, конечно, не могу говорить за Себастьяна здесь и, возможно, совершенно ошибаюсь, возьмите это как небольшое оговорку)
Для этого вам не нужно строить .phar!
Для моей компании я поддерживаю svnd версию PHPUnit. Это не рекомендуется использовать, но он работает без особых проблем!
Следуйте инструкциям "using from a git checkout"
на сайте phpunit github . Затем вам нужно поместить эти файлы в свой путь включения php, и он работает.
Мое предложение было бы создать пользовательский phpunit.sh, который изменяет путь include, а затем вызывает исходный phpunit.sh, проходящий по всем аргументам. Это небольшая работа, но она работает довольно хорошо, и это намного проще, чем создание phar-архива 🙂
На новой странице PHPUnit :
Мы распространяем архив PHP (PHAR), который содержит все необходимое для использования PHPUnit. Просто скачайте его здесь , сделайте его исполняемым и поместите в свой $ PATH, например …