phpunit --debug 仍然只显示点

2022-08-30 11:36:13

我想看看在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>

这是什么原因呢?


答案 1

你想使用 --testdox

phpunit --testdox


答案 2

(回答“如何查看当前正在运行的测试”的问题)

正如你所注意到的--debug和--verbose没有什么帮助。(我大部分时间都使用--verbose,但因为当事情出错时,它会告诉我更多的信息,而在其余时间并不是非常冗长。

这是我的第一次尝试:

phpunit --verbose --tap

我在一个有一些缓慢测试的测试套件上尝试了它。它工作得很好,直到测试21,然后什么都没有,然后几分钟后测试22到598一次性出现。我怀疑输出缓冲。下面是一个没有此问题的变体,但需要打开两个终端窗口:

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

然后在另一个窗口中:

tail -f tap.log

实际上,它并没有确切地告诉你你想要什么,因为它只报告它正在处理哪个功能。因此,当您遇到延迟时,您必须等待测试完成才能发现哪个是慢速测试。

为了获得更多控制,请考虑编写自己的测试侦听器


推荐