Глава 5. Запуск тестов из командной строки

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

Выводить отладочную информацию, такую как название теста, перед тем как он будет запущен.

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » PHP »