Выполнение тестов 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 с помощью загрузочного или конфигурационного файла … Любая помощь будет оценена.

Solutions Collecting From Web of "Выполнение тестов phpunit с использованием HHVM (HipHop)"

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" } 
  1. Запустите hhvm composer.phar install --dev . Если вы hhvm /usr/local/bin/composer install --dev систему композитора, запустите hhvm /usr/local/bin/composer install --dev , он тоже работает.

  2. Будет создан каталог поставщика. Phpunit «двоичный» будет находиться у vendor/bin/phpunit

  3. Чтобы запустить 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