Я пытаюсь запустить модульные тесты PHPUnit через HHVM на виртуальной установке Ubuntu 12.04 (64-разрядный сервер). Обычно тесты выполняются с использованием файла phpunit.xml, который находится в моем каталоге тестов, который включает в себя загрузочный файл для обработки автозагрузки, а тесты выполняются нормально при обычной установке php. Однако я продолжаю получать:
HipHop Fatal error: File not found: File/Iterator/Autoload.php in /usr/share/php/PHPUnit/Autoload.php on line 64
При запуске:
hhvm -f /usr/bin/phpunit /path/to/my/testsDirectory/SomeTest.php
И я не смог понять, как запустить phpunit под hhvm с помощью загрузочного или конфигурационного файла … Любая помощь будет оценена.
HHVM 2.4.0 был только что выпущен, и он пришел с полной поддержкой phpunit! Просто дайте полный путь к бинарнику phpunit, например:
$ hhvm /usr/bin/phpunit
Ура!
Протестировано это пошаговое руководство от HHVM wiki, и оно работает. Вот упрощенное руководство:
В свой проект добавьте следующие записи в файл composer.json:
"require-dev": { "phpunit/phpunit": "3.7.*", "phpunit/php-invoker": "1.1.3", "phpunit/dbunit": "1.2.3", "phpunit/phpunit-selenium": "1.3.2", "phpunit/phpunit-story": "1.0.2" }
Запустите hhvm composer.phar install --dev
. Если вы hhvm /usr/local/bin/composer install --dev
систему композитора, запустите hhvm /usr/local/bin/composer install --dev
, он тоже работает.
Будет создан каталог поставщика. Phpunit «двоичный» будет находиться у vendor/bin/phpunit
Чтобы запустить PHPUnit для вашего проекта: hhvm vendor/bin/phpunit [optional arguments]
Примечание. Вероятно, в недалеком будущем
hhvm /usr/local/bin/phpunit [optional arguments]
будут работать, как ожидалось, но сейчас это самый простой вариант, который мы имеем
Просто примечание, добавляемое к aspwb @ cabbey: вы можете установить значение IncludeSearchPaths
с помощью опции -v
:
hhvm -v Server.IncludeSearchPaths.share=/usr/share/php/ $(which phpunit) MyTests.php
Простым обходным решением является настройка HHVM для включения библиотек PEAR в пути поиска.
Я добавил это в раздел сервера config.hdf:
IncludeSearchPaths { forphpunit = /usr/lib/php/ }
а затем запустить phpunit как:
hhvm -c ~/config.hdf /usr/bin/phpunit --bootstrap bootstrap.php MyTests.php