Ответ 1
У меня была такая же проблема, и я решил удалить:
printerClass="PHPUnit_TextUI_ResultPrinter"
из параметров базового тега в файле конфигурации phpunit.xml.
Я хочу посмотреть, какой тест выполняется в настоящий момент во время прогона 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>
В чем причина этого?
У меня была такая же проблема, и я решил удалить:
printerClass="PHPUnit_TextUI_ResultPrinter"
из параметров базового тега в файле конфигурации phpunit.xml.
(Отвечая на вопрос "как проверить, какой тест в данный момент запущен" )
Как вы заметили --debug и --verbose мало помогают. (Я использую -verbose большую часть времени, но потому, что он сообщает мне больше информации, когда что-то идет не так, и на самом деле это не очень многословно.)
Вот моя первая попытка:
phpunit --verbose --tap
Я попробовал это на тестовом наборе, который имеет несколько медленных тестов. Он работал красиво до теста 21, затем ничего, затем через несколько минут тесты с 22 по 598 появились за один раз. Я подозреваю, что буферизация вывода. Вот вариант, который не имеет этой проблемы, но требует открытия двух терминальных окон:
phpunit --verbose --log-tap tap.log
Затем в другом окне:
tail -f tap.log
На самом деле он не говорит вам точно, что вы хотите, потому что он только сообщает, с какой функцией он работает. Поэтому, когда вы получаете задержку, вам нужно дождаться завершения теста, чтобы узнать, что является медленным тестом.
Чтобы получить больше контроля, рассмотрите написание собственного тестового прослушивателя.
Вы хотите использовать --testdox
phpunit --testdox