Phpunit 如果测试失败,PHP将非常慢

Phpunit 如果测试失败,PHP将非常慢,phpunit,Phpunit,运行PHPUnit时,如果没有错误,它将在aprox中运行。6秒,但如果出现错误,则可能需要3或4分钟…仅报告错误信息 我在Windows中运行PHP版本5.5.3和PHPUnit版本3.7.28 测试非常简单,即使是最简单的断言失败也会让测试报告花费很长时间 class MyTest extends PHPUnit_Framework_TestCase { public function someTest() { $this->assertEquals(true,

运行PHPUnit时,如果没有错误,它将在aprox中运行。6秒,但如果出现错误,则可能需要3或4分钟…仅报告错误信息

我在Windows中运行PHP版本5.5.3和PHPUnit版本3.7.28

测试非常简单,即使是最简单的断言失败也会让测试报告花费很长时间

class MyTest extends PHPUnit_Framework_TestCase
{
    public function someTest() {
        $this->assertEquals(true, false); // takes forever to report
    }
}
使用--debug运行数据库测试,得到以下输出

D:\xampp\htdocs\blueberry-cms
λ phpunit --debug tests\unit\DatabaseTest.php
PHPUnit 3.7.28 by Sebastian Bergmann.


Starting test 'DatabaseTest::testCRUD'.
F
Starting test 'DatabaseTest::testRetrieval'.
.

Time: 8.91 seconds, Memory: 2.25Mb

There was 1 failure:

1) DatabaseTest::testCRUD
Failed asserting that 19 matches expected 18.

D:\xampp\htdocs\blueberry-cms\tests\unit\DatabaseTest.php:37

FAILURES!
Tests: 2, Assertions: 22, Failures: 1.

测试运行正常,直到“出现1次故障:”然后停止输出文本。。。停止大约2或3分钟,然后完成文本输出。

我也有同样的问题。我找到了一个解决办法:

  • 下载PHPunit的
    .phar
    副本并将其放入文档根目录中。()
  • 从我的存储库的根目录运行
    php phpunit.phar
    ,而不是从php“bin文件夹”(或
    $PATH
    中的任何位置)运行
    phpunit
    命令。
    Ej:
    php phpunit.phar--bootstrap=./tests/bootstrap.php./tests/
  • 这个问题可能可以通过更新phpunit来解决

    (在我的PHP“bin文件夹”中的phpunit版本是
    3.7.21
    ,而我下载的
    .phar
    版本是
    4.8.36

    我还没有对此进行测试,但它也应该可以工作:

  • 替换php“bin文件夹”(或
    $PATH
    中的任何位置)中的phpunit版本
  • 现在,每次运行
    phpunit
    时,您都将使用最新版本,而无需将
    .phar
    复制到每个新项目中

  • 你有什么样的日志记录?生成报告文件?代码覆盖率?我使用的xampp几乎都是默认配置和xdebug,如何检查日志记录?为什么像上面这样的简单测试成功需要6秒?太过分了。我想你没有告诉我们上面的测试就是一个例子,我的真实测试生成了一些文件IO,然而,我发现6秒和3分钟之间的差异hugeI猜测这是因为测试达到了一些IO超时。(失败时)。。对于失败或成功的测试,PHPUnit的报告工作是相同的