42

我想查看在 phpunit 运行期间当前执行了哪个测试。

我使用--debug参数但仍然只得到点:

$ phpunit --调试
塞巴斯蒂安伯格曼的 PHPUnit 3.7.19。

从 /home/foo/bar/phpunit.xml 读取的配置

..S........我..

内容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>

这可能是什么原因?

4

4 回答 4

77

你想使用--testdox

phpunit --testdox

于 2017-08-16T01:43:55.690 回答
22

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

正如您所注意到的, --debug 和 --verbose 帮助不大。(我大部分时间都使用 --verbose ,但因为它会在出现问题时告诉我更多信息,而其余时间并不是很冗长。)

这是我的第一次尝试:

phpunit --verbose --tap

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

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

然后在另一个窗口中:

tail -f tap.log

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

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

于 2013-06-13T00:33:17.387 回答
14

我遇到了同样的问题并通过删除它来解决它:

printerClass="PHPUnit_TextUI_ResultPrinter"

来自 phpunit.xml 配置文件中 base 标记的选项。

于 2014-06-26T21:29:27.440 回答
7

我找到的最佳解决方案是将日志记录部分添加到您的 phpunit.xml 文件中

<logging>
    <log type="testdox-text" target="php://stdout"/>
</logging>
于 2018-09-18T01:29:28.680 回答