Yii中的PHPUnit扩展警告

时间:2012-11-29 12:27:50

标签: unit-testing yii warnings

我正在设置单元测试以使用Yii框架。除了Yii,我的PHPUnit效果很好。但是当我尝试测试它时,它和Yii一起,每次都会给我以下警告。

Warning: include(PHPUnit_Extensions_Story_TestCase.php): failed to open stream:
No such file or directory in D:\xampp\htdocs\yii1112\framework\YiiBase.php on li
ne 423

Warning: include(): Failed opening 'PHPUnit_Extensions_Story_TestCase.php' for i
nclusion (include_path='.;D:\xampp\htdocs\sms_dev\protected\extensions\yii-mail;
D:\xampp\htdocs\sms_dev\protected\extensions\giix-components;D:\xampp\htdocs\sms
_dev\protected\components;D:\xampp\htdocs\sms_dev\protected\models;D:\xampp\php\
PEAR') in D:\xampp\htdocs\yii1112\framework\YiiBase.php on line 423

我已经搜索了很多,并且也在Yii论坛上提出过要求,但似乎没有任何结果。

有谁知道这个警告意味着什么?我怎么能摆脱它?

3 个答案:

答案 0 :(得分:4)

文件PHPUnit_Extensions_Story_TestCase.php是包PHPUnit_Story的一部分,可以安装:

pear install phpunit/PHPUnit_Story

另请参阅:PHPUnit can't find PHPUnit_Extensions_Story_TestCase. What package is missing?

答案 1 :(得分:0)

protected / tests目录不在include路径中。我建议从任何公共位置移动受保护的目录,只需将受保护的文件夹添加到包含路径。所以d:\xampp\htdocs\sms_dev\protected\而不是单独列出每个目录。

这是问题或文件不存在,您必须检查您的代码。

答案 2 :(得分:0)

使用pear安装依赖项[现在梨包未更新,使用composer进行更好的安装]

sudo pear channel-discover pear.phpunit.de
sudo pear install phpunit/PHPUnit_Story
sudo pear install phpunit/PHP_Selenium

如果你使用composer安装phpunit会更好

第1步: 在项目根目录中创建composer.json文件:

{
    "require-dev": {
        "phpunit/phpunit": "4.6.*",
        "phpunit/phpunit-selenium": ">=1.4",
        "phpunit/dbunit": ">=1.3",
        "phpunit/phpunit-story": "*",
        "phpunit/php-invoker": "*"
    },
    "autoload": {
        "psr-0": {"": "src"}
    },
    "config": {
        "bin-dir": "bin/"
    }
}

第2步: 使用以下命令将composer安装到项目中:

curl -sS https://getcomposer.org/installer | php

确保composer可执行:

chmod +x composer.phar

让composer安装依赖项:

./composer.phar install --dev

检查您是否安装了项目特定的phpunit版本:

bin/phpunit --version

以上指定的是一个软链接

ls -la bin/phpunit
bin/phpunit -> ../vendor/phpunit/phpunit/phpunit

后记你可以将'phpunit'从供应商目录软链接到正在使用的php目录中。 这将删除与

相关的所有警告
PHP Warning:  include(classes/PHPUnit_Extensions_Story_TestCase.php)
PHP Warning:  include(): Failed opening 'classes/PHPUnit_Extensions_Story_TestCase.php' 
PHP Warning:  include(classes/Composer\Autoload\ClassLoader.php)