кодесурса
«PHPUnit

Тестовый запуск командной строки (1)

script1adsense2code
script1adsense3code

Вступление

Тестер запуска командной строки PHPUnit используется для запуска тестов PHPUnit на терминале. это

Тестовый запуск командной строки может быть вызван командой `phpunit`. Приведенный ниже фрагмент кода показывает, как запускать тесты с помощью программы запуска командной строки PHPUnit:
$ phpunit ArrayTest
PHPUnit |version|.0 by Sebastian Bergmann and contributors.
..
Time: 0 seconds
OK (2 tests, 2 assertions)

Когда приведенная выше команда вызывается, как показано, средство выполнения тестов командной строки PHPUnit будет искать файл `ArrayTest.php` в текущем рабочем каталоге, загружать его и ожидать, что в нем будет найден тестовый класс` ArrayTest`. Затем он выполнит тесты этого класса.

Для каждого выполненного теста инструмент командной строки PHPUnit использует один символ, чтобы указать ход выполнения теста. Некоторые из этих персонажей включают в себя:

  • `.` Это печатается, когда тест завершается успешно.
  • `F` Это означает, что утверждение не выполнено во время выполнения тестового метода.
  • `E` Указывает на возникновение ошибки при выполнении тестового метода.
  • `R` Печатается, когда тест помечен как рискованный.
  • `S` Это печатается, когда тест был пропущен
  • `I` Указывает, что тесты помечены как незавершенные или еще не выполненные.

PHPUnit различает сбои и ошибки. Сбой - это нарушенное утверждение PHPUnit, такое как неудачный вызов assertSame () `.

Ошибка - это непредвиденное исключение или ошибка PHP. Иногда это различие оказывается полезным, поскольку ошибки, как правило, легче исправить, чем ошибки.

# Параметры командной строки

В PHPUnit есть много параметров командной строки, разработанных для того, чтобы сделать тест PHPUnit простым и понятным. Команда `phpunit --help` предоставит вам полный список всех параметров командной строки PHPUnit, как показано ниже.

$ phpunit --help

PHPUnit | version | .0 Себастьян Бергманн и его участники.

Использование:

phpunit [параметры] UnitTest [UnitTest.php]

phpunit [опции] <каталог>

Варианты покрытия кода:

--coverage-clover <файл> Генерация отчета о покрытии кода в формате Clover XML
--coverage-crap4j <файл> Создать отчет о покрытии кода в формате Crap4J XML
--coverage-html <dir> Создать отчет о покрытии кода в формате HTML
--coverage-php <файл> Экспортировать объект PHP_CodeCoverage в файл
--coverage-текст = <файл> Создать отчет о покрытии кода в текстовом формате
По умолчанию: стандартный вывод
--coverage-xml <dir> Создать отчет о покрытии кода в формате PHPUnit XML
- белый список <dir> Белый список <dir> для анализа покрытия кода
повреждают охват игнорируемые Отключить аннотации для игнорирования покрытия кода
--no-покрытие Игнорировать конфигурацию покрытия кода
--dump-xdebug-filter <file> Создать скрипт для установки фильтра покрытия кода Xdebug

Параметры ведения журнала:

--log-junit <файл> Записать выполнение теста в формате JUnit XML в файл
--log-teamcity <файл> Записать выполнение теста в формате TeamCity в файл
--testdox-html <file> Записать гибкую документацию в формате HTML в файл
--testdox-text <файл> Записать гибкую документацию в текстовом формате в файл
--testdox-xml <file> Записать гибкую документацию в формате XML в файл
--reverse-лист Печать дефектов в обратном порядке

Варианты выбора теста:

--filter <шаблон> Фильтр, какие тесты для запуска
--testsuite <имя, ...> Фильтр для запуска тестового набора
--группировать ... Запускает тесты только из указанной группы
--exclude-group ... Исключить тесты из указанной группы (групп)
--list-группы Список доступных тестовых групп
--list-люкс Список доступных тестовых наборов
--list-тесты Список доступных тестов
--list-tests-xml <file> Список доступных тестов в формате XML
--test-суффикс ... Ищите только тест в файлах с указанным
Индекс (ы). По умолчанию: Test.php, .phpt

Параметры выполнения теста:

--dont-отчет-бесполезных-тесты

Не сообщайте об испытаниях, которые ничего не проверяют

--strict охват

Будьте строги в использовании аннотаций @covers
--strict глобальное состояние Будьте строги в отношении изменений в глобальном состоянии
--testdox-text <файл> Записать гибкую документацию в текстовом формате в файл
--testdox-xml <file> Записать гибкую документацию в формате XML в файл
--disallow тест-вывода Будьте строги к выводу во время тестов
--disallow-ресурсов использования Будьте строги в использовании ресурсов во время небольших тестов
--enforce-срок Обеспечить ограничение по времени в зависимости от размера теста
--default-временной предел = <сек> Тайм-аут в секундах для тестов без @small, @medium или @large
--disallow-ToDo-тесты Disallow @ todo-аннотированные тесты
--process-изоляция Запустите каждый тест в отдельном процессе PHP
--globals резервного копирования Резервное копирование и восстановление $ GLOBALS для каждого теста
--static резервного копирования Резервное копирование и восстановление статических атрибутов для каждого теста
--colors = <флаг> Используйте цвета в выводе («никогда», «авто» или «всегда»)
--columns <n> Количество столбцов, используемых для вывода прогресса
Макс. столбцов Использовать максимальное количество столбцов для вывода прогресса
--stderr Пишите в STDERR вместо STDOUT
--stop-на-дефект Остановить выполнение при первом не пройденном тесте
--stop-на-ошибки Остановить выполнение при первой ошибке
--stop-на-недостаточности Остановить выполнение при первой ошибке или ошибке
--stop-на-предупреждения Остановить выполнение при первом предупреждении
--stop-на-рискованный Остановить выполнение при первом рискованном тесте
--stop-на-пропускаются Остановить выполнение при первом пропущенном тесте
--stop-на-неполный Остановить выполнение при первом незавершенном тесте
--fail-на-предупреждения Относитесь к тестам с предупреждениями как к сбоям
--fail-на-рискованный Относитесь к рискованным тестам как к сбоям
-v | --verbose Вывод более подробной информации
--debug Показать отладочную информацию
--loader <загрузчик> Реализация TestSuiteLoader для использования
--repeat <раз> Запускает тест (ы) несколько раз
--teamcity Отчет о ходе выполнения теста в формате TeamCity
--testdox Отчет о ходе выполнения теста в формате TestDox
--testdox-группа, Включать только тесты из указанной группы
--testdox-исключений-группа Исключить тесты из указанной группы (групп)
--printer <принтер> Реализация TestListener для использования
--resolve-зависимости Разрешить зависимости между тестами
--сортировать-с = <заказ> Запускать тесты по порядку: по умолчанию | обратный | случайный | дефект | зависит
--random порядка семян = <N> Используйте конкретное случайное начальное число <N> для случайного порядка
--cache-результат Записать результат выполнения в кеш, чтобы включить упорядочивание тестов дефектов в первую очередь

Параметры конфигурации:

--prepend <файл> PHP-скрипт, который включен как можно раньше
--bootstrap <файл> PHP-скрипт, включенный до запуска тестов
-c | --configuration <файл> Чтение конфигурации из файла XML
--no-конфигурации Игнорировать файл конфигурации по умолчанию (phpunit.xml)
--no-каротаж Игнорировать конфигурацию регистрации
--no-расширение Не загружайте расширения PHPUnit
--include-path <путь (и)> Предварительно добавьте PHP include_path с заданными путями
-d ключ [= значение] Устанавливает значение php.ini
--generate-конфигурации Создать файл конфигурации с предлагаемыми настройками
--cache-результат-файл == <FILE> Укажите путь к кешу результата и имя файла

Разные варианты:

-h | --help Распечатывает эту информацию об использовании
--версия Печатает версию и выходит
--atleast-версия <мин> Проверяет, что версия больше мин и выходит
--check-версия Проверьте, является ли PHPUnit последней версией

# Команды командной строки

`phpunit UnitTest`

Эта команда выполняет тесты, предоставляемые классом `UnitTest`. Ожидается, что этот класс будет объявлен в файле `UnitTest.php`.

UnitTest должен быть либо классом, который наследуется от PHPUnit / Framework / TestCase, либо классом, который предоставляет метод public static suite (), который возвращает объект `PHPUnit / Framework / Test`, например, экземпляром Класс PHPUnit / Framework / TestSuite.

`phpunit UnitTest UnitTest.php`

Запускает тесты, предоставляемые классом UnitTest. Ожидается, что этот класс будет объявлен в указанном исходном файле.

Некоторые необязательные флаги также могут быть переданы вышеупомянутой команде, некоторые из этих необязательных флагов:

`--coverage-clover`

Создает файл журнала в формате XML с информацией о покрытии кода для выполнения тестов.

Следует отметить, что эта функциональность доступна только в том случае, если установлены расширения tokenizer и Xdebug.

`--coverage-crap4j`

Создает отчет о покрытии кода в формате Crap4j. Эта функциональность также доступна только после установки расширений Tokenizer и Xdebug.

`--coverage-html`

Создает отчет о покрытии кода в формате HTML. Эта опция также работает, только если установлены расширения tokenizer и Xdebug.

`--coverage-php`

Это создает сериализованный объект PHP_CodeCoverage с информацией о покрытии кода.

Обратите внимание, что эта функция доступна только в том случае, если установлены расширения Tokenizer и Xdebug.

`--coverage-Text`

Создает файл журнала или вывод из командной строки в удобочитаемом формате с информацией о покрытии кода для запуска тестов. Эта функциональность доступна только в том случае, если установлены расширения tokenizer и Xdebug.

`--log-junit`

Создает файл журнала в формате JUnit XML для запуска тестов.

`--testdox-html` и` --testdox-text`

Создает гибкую документацию в формате HTML или обычном тексте для запускаемых тестов.

`--filter`

Запускает только тесты, имя которых соответствует заданному шаблону регулярного выражения. Если шаблон не заключен в разделители, PHPUnit будет заключать шаблон в разделители `/`.

Соответствующие имена тестов будут иметь один из следующих форматов:

`TestNameSpace / TestCaseClass :: testMethod`

Формат имени теста по умолчанию эквивалентен использованию магической константы `__METHOD__` внутри метода теста.

`TestNamespace / TestCaseClass :: testMethod с набором данных # 0`

Когда у теста есть поставщик данных, к каждой итерации данных добавляется текущий индекс, добавляемый в конец имени теста по умолчанию.

`TestNamespace / TestCaseClass :: testMethod с набором данных« мои именованные данные »`

Когда у теста есть поставщик данных, который использует именованные наборы, каждая итерация данных получает текущее имя, добавляемое в конец имени теста по умолчанию.

Фрагмент кода ниже иллюстрирует пример именованных наборов данных.

<?php
use PHPUnit\Framework\TestCase;
namespace TestNamespace;
class TestCaseClass extends TestCase
{
    /**
     * @dataProvider provider
     */
    public function testMethod($data)
    {
        $this->assertTrue($data);
    }
    public function provider()
    {
        return [
            'my named data' => [true],
            'my data'       => [true]
        ];
    }
}

`/ путь / к / мой / test.php`

Имя теста для теста PHPUnit - это путь к файловой системе. Пример ниже иллюстрирует некоторые допустимые шаблоны фильтров.

--filter 'TestNamespace // TestCaseClass :: testMethod'

--filter 'TestNamespace // TestCaseClass'

--filter TestNamespace

--filter TestCaseClase

--filter testMethod

--filter '/ :: testMethod. * "Мои именованные данные" /'

--filter '/ :: testMethod. * # 5 $ /'

--filter '/ :: testMethod. * # (5 | 6 | 7) $ /'

Ярлыки также можно использовать для проверки наличия доступных поставщиков данных, примеры которых приведены ниже для некоторых ярлыков фильтров.

--filter 'testMethod # 2'

--filter 'testMethod # 2-4'

--filter '# 2'

--filter '# 2-4'

--filter ' [электронная почта защищена] именованные данные'

--filter ' [электронная почта защищена] * данные'

--filter '@my named data'

--filter '@ my. * data'

Предыдущая: Написание тестов для phpunit (исключения и ошибки)
Далее: Тестер командной строки (2)

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code