Есть ли способ отключить покрытие кода в PHPUnit для одного теста?

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

Есть ли способ отключить покрытие кода для каждого теста? Я не смог найти ни одного переключателя командной строки, который бы это делал.


person Eugene M    schedule 24.09.2010    source источник
comment
Вы пытались сделать это в конфигурации XML?   -  person Jake N    schedule 24.09.2010


Ответы (3)


Как насчет того, чтобы сделать копию вашего phpunit.xml, удалить из него строфу <logging>, а затем выполнить:

phpunit --configuration new.xml
person Alex Howansky    schedule 24.09.2010
comment
Вау, я не знал, что это так просто. Думаю, я могу использовать другой файл конфигурации, когда запускаю один тест, а не когда запускаю весь набор. - person Eugene M; 24.09.2010
comment
В итоге я сократил свой xml-файл до ‹phpunit bootstrap=./TestHelper.php colors=true/›... теперь он работает молниеносно. Хотел бы я знать это раньше! - person Eugene M; 24.09.2010
comment
У меня есть сценарий оболочки, который запускает PHPunit с конфигурацией «phpunit-FAST.xml» — он не выполняет покрытие кода, а также исключает некоторые более крупные тесты, отмеченные «@groupname» в источнике. Он запускает большинство моих тестов за 2 секунды. С покрытием и всеми остальными тестами, 2,5 минуты. - person Alister Bulman; 07.03.2017
comment
Я закомментировал <coverage /> и это сработало. Удаление <logging /> не сделало ничего заметного. - person Jacob; 16.06.2021
comment
@Jacob Хех, да, этому ответу 11 лет, и формат конфигурации немного изменился. В настоящее время вы можете просто ввести --no-coverage в командную строку. - person Alex Howansky; 16.06.2021
comment
@AlexHowansky Спасибо, просто делаю заметку для будущих читателей ... включая меня :) - person Jacob; 17.06.2021

Поскольку это один из лучших результатов Google, я думаю, имеет смысл указать, что, начиная с версии 4.8, PHPUnit теперь поддерживает параметр --no-coverage для переопределения вашей конфигурации xml.

https://github.com/sebastianbergmann/phpunit/blob/4.8.0/ChangeLog-4.8.md

person Gonçalo Queirós    schedule 21.01.2016
comment
Нет, это не должен быть принятый ответ. Вопрос заключался в том, чтобы отключить покрытие кода в PHPUnit для одного теста, а не отключить покрытие кода для одного запуска всех тестов. - person Sebastian Bergmann; 03.03.2017
comment
@SebastianBergmann Вопрос сбивает с толку, поскольку в нем говорится, что он хочет отключить покрытие кода для одного теста, когда он ему не нужен, поскольку у него старый компьютер. Также упоминается командная строка. Я не был явным, но идея состоит в том, чтобы использовать --no-coverage при запуске одного теста (что, как я предполагал, делал пользователь) - person Gonçalo Queirós; 23.03.2017
comment
Спасибо, @GonçaloQueirós, ваш ответ был полезен :) - person karni; 21.09.2017

Вы можете аннотировать тестовый класс или тестовый метод с помощью @coversNothing. В этом случае тесты не учитываются в отчете о покрытии кода. Однако данные о покрытии кода все равно будут собираться (что замедляет выполнение). Я планирую оптимизировать это в будущем.

person Sebastian Bergmann    schedule 03.03.2017