CakePHP中找不到PHPUnit_Util_Skeleton_Test

时间:2013-01-15 22:43:20

标签: php phpunit cakephp-2.2

我可以在名为Agg的插件中为每个模型运行我的单独测试,但是当我尝试运行CakeTestSuite时,我收到错误。

class ModelsTest extends CakeTestSuite
{
    public static function suite()
    {
        $suite = new CakeTestSuite('All model tests');
        $suite->addTestDirectory(TESTS . 'Case' . DS . 'Model');
        return $suite;
    }
}

运行该套件会产生此错误。

  

致命错误:第77行的C:\ work \ zend \ cake \ Cake \ TestSuite \ CakeTestSuiteCommand.php中找不到类'PHPUnit_Util_Skeleton_Test'

我正在使用PHP 5.3.15,并在CakePHP 2.2.5上安装了PHPUnit 3.7.12

通过Web和CLI运行测试时出现此错误。

任何帮助都将不胜感激。

更新

如果我在PHPUnit的PEAR文件夹中搜索'PHPUnit_Util_Skeleton_Test',则找不到它。这对我来说很奇怪。我使用错误版本的PHPUnit吗?这节课什么时候介绍?

更新

似乎PHPUnit 3.7.x中不再使用此类,我想知道CakePHP 2.2是否只适用于PHPUnit 3.6。我尝试卸载pear包,然后安装3.6.x版本,但始终安装最新版本。关于如何降级PHPUnit的任何想法?

更新

使用--force降级安装旧版本的PHPUnit并没有解决问题。我试过3.6.12,3.6.5和3.5。使用3.6.12我在PHPUnit代码中的某处遇到了错误is_file()。

1 个答案:

答案 0 :(得分:2)

PHPUnit_Util_Skeleton_Test在PHPUnit 3.6中可用,请参阅https://github.com/sebastianbergmann/phpunit/blob/3.6/PHPUnit/Util/Skeleton/Test.php

我建议卸载所有 phpunit软件包并重新安装phpunit 3.6

$ pear install phpunit/phpunit-3.6.12

在使用--force降级单个phpunit软件包时可能会破坏依赖关系,这应该可以解决它。