web-dev-qa-db-ja.com

phpunit --debugはドットのみを表示します

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>

これの理由は何ですか?

37
Alex

私は同じ問題を抱えていました削除これで解決しました:

printerClass="PHPUnit_TextUI_ResultPrinter"

phpunit.xml設定ファイルのベースタグのオプションから。

13
Gerg

--testdoxを使用したい

phpunit --testdox

48
neilakapete

(「現在実行中のテストを確認する方法」の質問に答える)

お気づきのように、-debugと--verboseはほとんど役に立ちません。 (私はほとんどの場合--verboseを使用しますが、問題が発生したときにより多くの情報を教えてくれるので、残りの時間はそれほど冗長ではありません。)

ここに私の最初の試みがありました:

phpunit --verbose --tap

いくつかの遅いテストがあるテストスイートで試してみました。テスト21までは問題なく動作し、その後は何もせず、数分後、22から598までのテストが一度に表示されました。出力バッファリングが疑われます。この問題がないバリエーションですが、2つのターミナルウィンドウを開く必要があります。

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

次に、別のウィンドウで:

tail -f tap.log

実際には、機能が機能していただけを報告するので、正確には何を望んでいるかはわかりません。したがって、遅延が発生した場合、テストが終了するまで待って、どちらが遅いテストであるかを発見する必要があります。

より詳細に制御するには、 独自のテストリスナーを作成する を検討してください。

22
Darren Cook

私が見つけた最良の解決策は、phpunit.xmlファイルにロギングセクションを追加することでした。

<logging>
    <log type="testdox-text" target="php://stdout"/>
</logging>
3