phpunitのインストール
laravelの学習に伴い、ユニットテストの手法も勉強を始めました。 今までJavaで何度か開発プロセスへの導入を検討していましたが、プロジェクトへの適用を考えるとルール整備、教育、運用といった点で何度も挫折しています。
ユニットテスト導入に関して良さそうな書籍を見つけたので本格導入を再度始めました。 書籍がphpなので、phpunitをまずは導入します。
環境
- PHP 7.1.14
- Composer version 1.6.3
composer導入済みの環境としています。
手順
composerでphpunitをインストールします。各プロジェクト単位ではなく、globalでインストールします。
インストール先は~/.composer/vendor/
になります。(macの場合)
composer global require --dev "phpunit/phpunit=3.7.*"
導入後、phpunitコマンドをパスに追加します。bashの場合には.bash_profile
とかに追記ですね。
export PATH=~/.composer/vendor/bin/:${PATH}
phpunit
だけで実行できるようになっていればOK。
❯ phpunit PHPUnit 3.7.38 by Sebastian Bergmann. Usage: phpunit [options] UnitTest [UnitTest.php] phpunit [options] <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-json <file> Log test execution in JSON format. --coverage-clover <file> Generate code coverage report in Clover XML format. --coverage-html <dir> Generate code coverage report in HTML format. --coverage-php <file> Serialize PHP_CodeCoverage object to file. --coverage-text=<file> Generate code coverage report in text format. Default to writing to the standard output. --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. --testsuite <pattern> Filter which testsuite 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. --test-suffix ... Only search for test in files with specified suffix(es). Default: Test.php,.phpt --loader <loader> TestSuiteLoader implementation to use. --printer <printer> TestSuiteListener 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 Run tests in strict mode. -v|--verbose Output more verbose information. --debug Display debugging information during test execution. --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. --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. -h|--help Prints this usage information. --version Prints the version and exits.