如果测试失败,PHPUnit非常慢

时间:2013-11-28 18:10:44

标签: 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, 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分钟,然后完成输出文本。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我发现了一种解决方法:

  1. 下载.phar的PHPunit副本并将其放在文档根目录中。 (link to phpunit downloads page
  2. 与其从php“ bin文件夹”(或您在phpunit中的任意位置)运行$PATH命令,而是从我的存储库的根目录运行php phpunit.phar。 /> Ej:php phpunit.phar --bootstrap=./tests/bootstrap.php ./tests/

可能此问题可以通过更新phpunit 来解决。

(对于我来说(PHP 5.6),我的PHP“ bin文件夹”中的phpunit版本是3.7.21,而我下载的.phar是版本4.8.36

我还没有测试过,但是它应该也可以工作:

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