Saturday, July 30, 2011

Install PHPUNIT in RHEL, CentOS or Fedora


I just keep on forgetting the channel and name when I install PHPUNIT using PEAR. I might as well put it here so I know where to look.
Note: The steps assumes that you have PEAR installed already and that you're machine have internet ;)


1. Make sure that you're PEAR is version 1.9.2 or above. 
# pear upgrade pear


2. Discover all channels required.
# pear channel-discover pear.phpunit.de
# pear channel-discover pear.symfony-project.com
# pear channel-discover components.ez.no


3. Install PHPUnit with all the dependencies
# pear install --force --alldeps channel://pear.php.net/HTTP_Request2-2.0.0RC1 <-- optional, at the time of writing this is beta so I had to force install it
# pear install --alldeps phpunit/PHPUnit


4. Done. Test PHPUNIT.
# phpunit


PHPUnit 3.5.14 by Sebastian Bergmann.


Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] <directory>


  --log-junit <file>        Log test execution in JUnit XML format to file.
  --log-tap <file>          Log test execution in TAP format to file.
  --log-dbus                Log test execution to DBUS.
  --log-json <file>         Log test execution in JSON format.


  --coverage-html <dir>     Generate code coverage report in HTML format.
  --coverage-clover <file>  Write code coverage data in Clover XML format.


  --testdox-html <file>     Write agile documentation in HTML format to file.
  --testdox-text <file>     Write agile documentation in Text format to file.


  --filter <pattern>        Filter which tests to run.
  --group ...               Only runs tests from the specified group(s).
  --exclude-group ...       Exclude tests from the specified group(s).
  --list-groups             List available test groups.


  --loader <loader>         TestSuiteLoader implementation to use.
  --repeat <times>          Runs the test(s) repeatedly.


  --tap                     Report test execution progress in TAP format.
  --testdox                 Report test execution progress in TestDox format.


  --colors                  Use colors in output.
  --stderr                  Write to STDERR instead of STDOUT.
  --stop-on-error           Stop execution upon first error.
  --stop-on-failure         Stop execution upon first error or failure.
  --stop-on-skipped         Stop execution upon first skipped test.
  --stop-on-incomplete      Stop execution upon first incomplete test.
  --strict                  Mark a test as incomplete if no assertions are made.
  --verbose                 Output more verbose information.
  --wait                    Waits for a keystroke after each test.


  --skeleton-class          Generate Unit class for UnitTest in UnitTest.php.
  --skeleton-test           Generate UnitTest class for Unit in Unit.php.


  --process-isolation       Run each test in a separate PHP process.
  --no-globals-backup       Do not backup and restore $GLOBALS for each test.
  --static-backup           Backup and restore static attributes for each test.
  --syntax-check            Try to check source files for syntax errors.


  --bootstrap <file>        A "bootstrap" PHP file that is run before the tests.
  -c|--configuration <file> Read configuration from XML file.
  --no-configuration        Ignore default configuration file (phpunit.xml).
  --include-path <path(s)>  Prepend PHP's include_path with given path(s).
  -d key[=value]            Sets a php.ini value.


  --help                    Prints this usage information.
  --version                 Prints the version and exits.


  --debug                   Output debugging information.


You should get similar output and you should be set.


5. If you wish to uninstall
# pear uninstall phpunit/PHPUnit


Cheers!
  • Related Links Widget for Blogspot

1 comment:

aolong said...

Thank you. Solved a problem with getting Zend Framework to see PHPUnit on CentOS 5.7. Even though it was already installed from the pear.phpunit.de channel and within PHP's include_path, ZF just would not see it until adding the two other channels and re-installing.