PHPUnit можно вызвать с помощью консольной команды phpunit. Пример, который показывает запуск PHPUnit из командной строки:
phpunit ArrayTest.php
PHPUnit 3.7.0 by Sebastian Bergmann.
..
Time: 0 seconds
OK (2 tests, 2 assertions)
Для каждого теста PHPUnit выводит на экран один символ:
.Выводится, если тест прошел.
FВыводится, если тест провалился.
EВыводится когда возникает ошибка.
SВыводится, если тест был пропущен (см. Глава 9, Incomplete and Skipped Tests ).
IВыводится, если тест помечен как "незавершён" или "ещё не реализован" (см. Глава 9, Incomplete and Skipped Tests ).
PHPUnit разделяет статусы провал и ошибка. Провал выводится в случае, если утверждение не выполняется assertEquals(). Ошибкой может являться непойманное исключение или ошибка PHP. Иногда это разграничение становится полезным, потому что, обычно, ошибки проще исправить чем провалы. Если в проекте выявлен большой список проблем - следует сперва обратить внимание на ошибки, и, затем, проверить оставшиеся провалы.
Давайте посмотрим на список параметров в следующем коде:
phpunit --help
PHPUnit 3.7.0 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-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.
--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.
--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 debbuging 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.
--debug Output debugging information.
phpunit UnitTestВыполняет тесты, представленные в классе UnitTest. Предполагается что этот класс объявлен в файле UnitTest.php.
Класс UnitTest должен наследовать PHPUnit_Framework_TestCase или предоставлять метод public static suite(), который возвращает объект типа PHPUnit_Framework_Test. Например, экземпляр класса PHPUnit_Framework_TestSuite.
phpunit UnitTest UnitTest.phpВыполняет тесты из класса UnitTest. Этот класс должен быть объявлен в указанном файле.
--log-junitГенерирует файл логов в формате JUnit XML для всех пройденных тестов. Более детальную информацию см. Глава 18, Logging .
--log-tapГенерирует файл логов, используя формат Test Anything Protocol (TAP) для пройденных тестов. Более детальную информацию см. Глава 18, Logging
--log-jsonГенерирует файл логов, используя JSON формат. Более детальную информацию см. Глава 18, Logging .
--coverage-htmlГенерирует отчёт о покрытии кода в формате HTML. Более детальную информацию см. Глава 14, Code Coverage Analysis .
Обратите внимание, что эта функциональность доступна, если установлены расширения tokenizer и Xdebug.
--coverage-cloverГенерирует файл логов в формате XML для пройденых тестов. Более детальную информацию см. Глава 18, Logging .
Обратите внимание, что эта функциональность доступна, если установлены расширения tokenizer и Xdebug.
--coverage-phpГенерирует сериализованый (serialized) объект класса PHP_CodeCoverage с информацией о покрытии.
Обратите внимание, что эта функциональность доступна, если установлены расширения tokenizer и Xdebug.
--coverage-textГенерирует файл логов или вывод в командной строке в человеко-читаемом формате. Более детальную информацию см. Глава 18, Logging .
Обратите внимание, что эта функциональность доступна, если установлены расширения tokenizer и Xdebug.
--testdox-html и --testdox-textГенерирует agile документацию в текстовом или HTML формате для всех запущеных тестов. Более детальную информацию см. Глава 15, Другие использования тестов .
--filterВызывает только те тесты, которые содержат в себе заданный фильтр. Фильтром может быть название (или подстрока) теста, или же регулярное выражение, которое соответствует нескольким названиям тестов.
--groupВыполняет только тесты из указанных групп. Тест может принадлежать группе, если он помечен аннотацией @group.
Аннотация @author является синонимом аннотации @group и позволяет фильтровать тесты по их авторам.
--exclude-groupИсключает тесты указанных групп. Тест может принадлежать группе, если он помечен аннотацией @group.
--list-groupsВыводит список возможных групп тестов.
--loaderУказывает какую реализацию загрузчика PHPUnit_Runner_TestSuiteLoader использовать.
Стандартная реализация загрузчика будет искать исходные файлы тестов в текущей директории и всех директориях указанных в директиве include_path. Названия классов должны следовать конвенции PEAR Naming Conventions. Например, класс Project_Package_Class должен быть реализован в файле Project/Package/Class.php.
--printerУказывает какую реализацию форматирования вывода использовать. Этот класс должен наследовать PHPUnit_Util_Printer и реализовывать интерфейс PHPUnit_Framework_TestListener.
--repeatУазывает сколько раз прогнать тесты по кругу.
--tapВыводит отчет в формате Test Anything Protocol (TAP). Более детальную информацию см. Глава 18, Logging .
--testdoxВыводит результат тестов в виде документации agile. Более детальную информацию см. Глава 15, Другие использования тестов .
--colorsИспользовать цвета при выводе.
--stderrВыводить в STDERR вместо STDOUT.
--stop-on-errorОстановить выполнение при возникновении первой ошибки.
--stop-on-failureОстановить выполенеие при возникновении первой ошибки или провала.
--stop-on-skippedОстановить выполенеие при первом пропущеном тесте.
--stop-on-incompleteОстановить выполенеие при первом незавершенном тесте.
--strictВыполнять тесты в строгом (strict) режиме.
--verboseВыводить дополнительную информацию. Например, названия тестов, которые были пропущены или не завершены.
--process-isolationВыполнять каждый тест в отдельном потоке PHP.
--no-globals-backupНе сохранять и восстанавливать $GLOBALS. Более детальную информацию см. «Global State».
--static-backupСохранять и восстанавливать статические аттрибуты тестируемых классов. Более детальную информацию см. «Global State».
--bootstrap"Bootstrap" - PHP файл, который будет запущен перед запуском тестов.
--configuration, -cПрочитать настройки из файла в формате XML. Более детальную информацию см. Приложение C, The XML Configuration File .
Если файл phpunit.xml или phpunit.xml.dist существует (в этом порядке) в текущей директории и опция --configuration не использована - файл настроек автоматически будет прочитан.
--no-configurationИгнорировать файл phpunit.xml и phpunit.xml.dist, находящиеся в текущей папке.
--include-pathДобавить указанный(е) пути в начало директивы PHP include_path.
-dУстанавливает заданный(е) параметр(ы) конфигурации PHP.
--debugВыводить отладочную информацию, такую как название теста, перед тем как он будет запущен.
Комментарии
Комментариев пока нет.