0

我今天早上一直坚持想弄清楚这一点,但没有运气。

我在测试/单元下创建了一个测试

<?php

  class DbTest extends CTestCase {

    public function testConnection() {
  $this->assertTrue( true );
    }
  }

?>

当我在终端中运行它时

$ cd tests
$ phpunit unit/DbTest.php

我收到此错误:

PHPUnit 3.7.8 by Sebastian Bergmann.

Function 'phpunit_autoload' not found (function 'phpunit_autoload' not found or invalid function name)

我的 phpunit 版本是 3.7.8

4

2 回答 2

2

以下事情对我来说效果很好。谷歌搜索发现。 http://www.yiiframework.com/forum/index.php/topic/37294-yii-unit-test-not-working/

framework/test/CTestCase.php 中的旧代码,注释掉。

   require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11
   require_once('PHPUnit/Autoload.php');
   spl_autoload_unregister('phpunit_autoload');
   Yii::registerAutoloader('phpunit_autoload');

并改成这个

require_once('PHPUnit/Runner/Version.php');
require_once('PHPUnit/Util/Filesystem.php'); // workaround for PHPUnit <= 3.6.11
require_once('PHPUnit/Autoload.php');
if (in_array('phpunit_autoload', spl_autoload_functions())) { // PHPUnit >= 3.7 'phpunit_alutoload' was obsoleted
spl_autoload_unregister('phpunit_autoload');
Yii::registerAutoloader('phpunit_autoload');

}

于 2012-12-22T10:33:21.447 回答
2

这是一个已知的错误

你需要改变 autoloader

或者

将 PHPUnit 降级到 3.7.1

于 2012-10-18T18:35:44.490 回答