Каждый раз, когда я запускаю модульные тесты одного класса или всей папки, phpunit генерирует покрытие для всей системы, потому что это настроено в phpunit.xml.
Это плохо, потому что это занимает больше времени и исчерпывает память PHP.Создайте покрытие только того, что было протестировано
Мой phpunit.xml
<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit
backupGlobals = "false"
backupStaticAttributes = "false"
colors = "true"
convertErrorsToExceptions = "true"
convertNoticesToExceptions = "true"
convertWarningsToExceptions = "true"
processIsolation = "false"
stopOnFailure = "false"
syntaxCheck = "false"
bootstrap = "Bootstrap.php" >
<testsuites>
<testsuite name="Application Module Suite Test">
<directory>./Module1Test</directory>
<directory>./Module2Test</directory>
<directory>./Module3Test</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>../module/Module1</directory>
<directory>../module/Module2</directory>
<directory>../module/Module3</directory>
</whitelist>
</filter>
</phpunit>
Есть ли способ, чтобы произвести освещение только то, что я тестирую прямо сейчас, динамически?
Пример
Для команды ниже я хотел бы произвести охват только для Controller/ExampleController.php
пути.
phpunit Controller/ExampleController.php --coverage-html ~/Desktop/tests
Я использую PHPUnit 4.8 и 3.7, Sublime Text Editor и приложение использует Zend Framework 2.
Если я запустил phpunit для определенного контроллера Module1, покрытие все еще генерирует для всех трех модулей. –
Что делать, если вы белеете файл вместо каталога? – Aditija
Возможно, это сработает, но я хочу динамическое решение, поэтому мне не нужно постоянно менять phpunit.xml. –