I am trying to run PHPUnit unit tests via HHVM on a virtual Ubuntu 12.04 (64-bit Server) install. The tests usually run using a phpunit.xml file located in my tests directory, w
HHVM 2.4.0 was just released and it came with full phpunit support! Just give the full path to phpunit binary, like this:
$ hhvm /usr/bin/phpunit
Cheers!
Tested this step by step guide from HHVM wiki and it works. Here is a simplified guide:
On your project, add the following entries to your composer.json file:
"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"
}
Run hhvm composer.phar install --dev
. If you did a composer system wide install, run hhvm /usr/local/bin/composer install --dev
, it works too.
A vendor directory will be created. The phpunit "binary" will be located at vendor/bin/phpunit
To run PHPUnit for your project: hhvm vendor/bin/phpunit [optional arguments]
Note: Probably in a not so distant future
hhvm /usr/local/bin/phpunit [optional arguments]
will work as expected, but right now this is the easiest option we have
A simple workaround is to configure HHVM to include the PEAR libraries in it's search paths.
I added this to my config.hdf's Server section:
IncludeSearchPaths {
forphpunit = /usr/lib/php/
}
and then ran phpunit as:
hhvm -c ~/config.hdf /usr/bin/phpunit --bootstrap bootstrap.php MyTests.php
Just a note to add to @cabbey's asnwer: you can set the IncludeSearchPaths
value using the -v
option:
hhvm -v Server.IncludeSearchPaths.share=/usr/share/php/ $(which phpunit) MyTests.php