Выполнение тестов 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