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 channel-discover
# pear channel-discover

3. Install PHPUnit with all the dependencies
# pear install --force --alldeps channel:// <-- 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

  • 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 channel and within PHP's include_path, ZF just would not see it until adding the two other channels and re-installing.