Подтвердить что ты не робот

Как пропустить тесты в PHPunit?

Я использую phpunit в связи с jenkins, и я хочу пропустить определенные тесты, установив конфигурацию в файле XML phpunit.xml

Я знаю, что могу использовать в командной строке:

phpunit --filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest

как мне перевести это в файл XML, так как тег <filters> предназначен только для покрытия кода?

Я хотел бы запустить все тесты, кроме testStuffThatAlwaysBreaks

4b9b3361

Ответ 1

Самый быстрый и простой способ пропустить тесты, которые либо сломаны, либо вам нужно продолжить работу, а просто добавить следующее к верхней части вашего индивидуального unit test:

$this->markTestSkipped('must be revisited.');

Ответ 2

Если вы можете иметь дело с игнорированием всего файла, то

<?xml version="1.0" encoding="UTF-8"?>

<phpunit>

    <testsuites>
        <testsuite name="foo">
            <directory>./tests/</directory>
            <exclude>./tests/path/to/excluded/test.php</exclude>
                ^-------------
        </testsuite>
    </testsuites>

</phpunit>

Ответ 3

Иногда полезно пропустить все тесты из определенного файла на основе пользовательских условий, определенных как код php. Вы можете легко сделать это, используя функцию setUp, в которой также работает makeTestSkipped.

protected function setUp()
{
    if ($yourCustomCondition) {
        $this->markTestSkipped('all tests in this file are invactive for this server configuration!');
    }
}

$ yourCustomCondition может быть передано через некоторый метод/свойство статического класса, константу, определенную в файле начальной загрузки phpunit, или даже через глобальную переменную - это вам решать.