Phpunitの実行中に現在実行されているテストを確認したい。
--debug
paramですが、まだドットしか取得できません。
$ phpunit --debug PHPUnit 3.7.19 by Sebastian Bergmann。 設定は/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設定ファイルのベースタグのオプションから。
--testdoxを使用したい
phpunit --testdox
(「現在実行中のテストを確認する方法」の質問に答える)
お気づきのように、-debugと--verboseはほとんど役に立ちません。 (私はほとんどの場合--verboseを使用しますが、問題が発生したときにより多くの情報を教えてくれるので、残りの時間はそれほど冗長ではありません。)
ここに私の最初の試みがありました:
phpunit --verbose --tap
いくつかの遅いテストがあるテストスイートで試してみました。テスト21までは問題なく動作し、その後は何もせず、数分後、22から598までのテストが一度に表示されました。出力バッファリングが疑われます。この問題がないバリエーションですが、2つのターミナルウィンドウを開く必要があります。
phpunit --verbose --log-tap tap.log
次に、別のウィンドウで:
tail -f tap.log
実際には、機能が機能していただけを報告するので、正確には何を望んでいるかはわかりません。したがって、遅延が発生した場合、テストが終了するまで待って、どちらが遅いテストであるかを発見する必要があります。
より詳細に制御するには、 独自のテストリスナーを作成する を検討してください。
私が見つけた最良の解決策は、phpunit.xmlファイルにロギングセクションを追加することでした。
<logging>
<log type="testdox-text" target="php://stdout"/>
</logging>