4

我正在设置单元测试以使用 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 论坛上问过,但似乎没有任何结果。

有谁知道这个警告是什么意思?我怎样才能摆脱它?

4

3 回答 3

4

该文件PHPUnit_Extensions_Story_TestCase.php是 package 的一部分PHPUnit_Story,可以通过以下方式安装:

pear install phpunit/PHPUnit_Story

另请参阅:PHPUnit 找不到 PHPUnit_Extensions_Story_TestCase。缺少什么包裹?

于 2013-03-29T09:06:38.510 回答
0

使用 pear 安装依赖项 [现在 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

确保作曲家是可执行的:

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)
于 2015-04-27T13:01:00.500 回答
0

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

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

于 2012-12-04T19:25:13.440 回答