Выполнение тестов phpunit с использованием HHVM (HipHop)
Я пытаюсь запустить модульные тесты 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 с помощью загрузочного или конфигурационного файла... Любая помощь будет оценена.
Ответы
Ответ 1
HHVM 2.4 +
HHVM 2.4.0 был только выпущен, и он пришел с полной поддержкой phpunit! Просто дайте полный путь к двоичному файлу phpunit, например:
$ hhvm /usr/bin/phpunit
Ура!
HHVM 2.3
Протестировано это пошаговое руководство от 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
, он тоже работает.
-
Будет создан каталог поставщика. "Binary" phpunit будет расположен в vendor/bin/phpunit
-
Чтобы запустить PHPUnit для вашего проекта: hhvm vendor/bin/phpunit [optional arguments]
Примечание. Вероятно, в недалеком будущем hhvm /usr/local/bin/phpunit
[optional arguments]
будет работать так, как ожидалось, но сейчас это Самый простой вариант:
Ответ 2
Просто добавьте примечание к @cabbey asnwer: вы можете установить значение IncludeSearchPaths
с помощью параметра -v
:
hhvm -v Server.IncludeSearchPaths.share=/usr/share/php/ $(which phpunit) MyTests.php
Ответ 3
Простым обходным решением является настройка HHVM для включения библиотек PEAR в пути поиска.
Я добавил это в раздел сервера config.hdf:
IncludeSearchPaths {
forphpunit = /usr/lib/php/
}
а затем запустил phpunit как:
hhvm -c ~/config.hdf /usr/bin/phpunit --bootstrap bootstrap.php MyTests.php