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

Phpunit --debug по-прежнему отображает только точки

Я хочу посмотреть, какой тест выполняется в настоящий момент во время прогона phpunit.

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

$ phpunit --debug 
PHPUnit 3.7.19 by Sebastian Bergmann.

Configuration read from /home/foo/bar/phpunit.xml

..S.......I..

содержимое phpunit.xml:

<phpunit backupGlobals="true"
     bootstrap="tests/bootstrap.php"
     backupStaticAttributes="false"
     cacheTokens="false"
     colors="true"
     convertErrorsToExceptions="true"
     convertNoticesToExceptions="true"
     convertWarningsToExceptions="true"
     forceCoversAnnotation="false"
     mapTestClassNameToCoveredClassName="false"
     printerClass="PHPUnit_TextUI_ResultPrinter"
     processIsolation="false"
     stopOnError="false"
     stopOnFailure="false"
     stopOnIncomplete="false"
     stopOnSkipped="false"
     testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
     strict="false"
     verbose="true">
    <testsuites>
    <testsuite name="foo Tests">
        <directory>./tests</directory>
    </testsuite>
    </testsuites>
    <filter>
    <whitelist addUncoveredFilesFromWhitelist="true">
        <directory suffix=".php">./src</directory>
    </whitelist>
    </filter>
    <logging>
    <log type="coverage-clover" target="./clover.xml"/>
    </logging>
</phpunit>

В чем причина этого?

4b9b3361

Ответ 1

У меня была такая же проблема, и я решил удалить:

printerClass="PHPUnit_TextUI_ResultPrinter"

из параметров базового тега в файле конфигурации phpunit.xml.

Ответ 2

(Отвечая на вопрос "как проверить, какой тест в данный момент запущен" )

Как вы заметили --debug и --verbose мало помогают. (Я использую -verbose большую часть времени, но потому, что он сообщает мне больше информации, когда что-то идет не так, и на самом деле это не очень многословно.)

Вот моя первая попытка:

phpunit --verbose --tap

Я попробовал это на тестовом наборе, который имеет несколько медленных тестов. Он работал красиво до теста 21, затем ничего, затем через несколько минут тесты с 22 по 598 появились за один раз. Я подозреваю, что буферизация вывода. Вот вариант, который не имеет этой проблемы, но требует открытия двух терминальных окон:

phpunit --verbose --log-tap tap.log

Затем в другом окне:

tail -f tap.log

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

Чтобы получить больше контроля, рассмотрите написание собственного тестового прослушивателя.

Ответ 3

Вы хотите использовать --testdox

phpunit --testdox