Заставить PHPUnit игнорировать вещи? - PullRequest
6 голосов
/ 12 сентября 2009

У меня есть класс PHPUnit Test, который я хотел бы игнорировать при тестовом прогоне. Я знаю, что могу сделать это, переименовав его так, чтобы в его имени не было слова «Тест», но я бы предпочел этого не делать, поскольку он запутывает воды в системе контроля версий больше, чем хотелось бы.

У кого-нибудь есть предложения?

Ответы [ 5 ]

15 голосов
/ 12 сентября 2009

Для команды phpunit есть несколько параметров, которые могут помочь определить, какие тесты следует и не следует запускать:

$ phpunit --help
PHPUnit 3.4.0beta5 by Sebastian Bergmann.

Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] <directory>
...
  --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.
...

Те, вероятно, не позволят указать точно , что вы хотели ... Но они могут помочь.

Подробнее см. Runner командной строки


Особенно мне нравится групповая особенность: просто используйте тег @group в phpdoc ваших тестов, чтобы перегруппировать их (например, одна группа на «кусок функциональности») ; и после этого вы можете использовать опции --group или --exclude-group в командной строке, чтобы указать, какие тесты следует или не следует запускать.

В вашем случае, если вы не можете изменить тесты, может быть полезен параметр --filter, в зависимости от того, как ваши тесты называются (т. Е. Если есть способ идентифицировать те, которые вы хотите запустить) :

--filter
Запускает только тесты, имя которых соответствует заданному шаблону. Шаблон может быть либо название одного теста или регулярное выражение, которое соответствует несколько имен тестов.


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

Например, посмотрите на Составление набора тестов с использованием конфигурации XML .

6 голосов
/ 18 апреля 2011

просто переименуйте ваш метод:

testFunctionality () { // бла }

до

ignore_ testFunctionality () { // бла }

4 голосов
/ 21 апреля 2010

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

Конечно, это на уровне теста, но вы можете объединить его, поместив его в класс 'setUp().

Просто один на один.

1 голос
/ 12 мая 2015

Я предпочитаю использовать нормальные имена для своих функций и поместить в функцию docBloc

/**
* @test
*/
public function getDetails()
{}

Итак, когда я не хочу запускать этот тест, я просто удаляю этот @test. Также, возможно, вы найдете здесь что-нибудь полезное PHPUnit - XML-файл конфигурации В тесты тегов «исключить» я добавил, что не хочу, чтобы их покрывал phpunit.

1 голос
/ 12 сентября 2009

Я искал всю инструкцию PHPUnit и ничего не нашел. Вы можете игнорировать код для целей тестового покрытия, но это все. Тем не менее, в этом ChangeLog (в явной развилке) упоминается, что он будет «игнорировать имена тестовых файлов с префиксом .». Я не пробовал этого, но это стоит попробовать. Или вы можете закомментировать тест. Я предполагаю, что вы хотели бы что-то вроде предложений NUnit, где он будет сообщать о проигнорированных тестах; Я не нашел ничего подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...