1

我可以在一个名为 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 并安装了 PHPUnit 3.7.12 和 CakePHP 2.2.5

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

任何帮助,将不胜感激。

更新:

如果我在 PEAR 文件夹中为 PHPUnit 搜索“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() 错误。

4

1 回答 1

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

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

于 2013-01-16T12:40:28.553 回答