PHPUnit对其他项目有效,但是当我尝试运行Yii测试时,我收到以下警告(即使是空测试):
有1次失败:
1)警告
警告:include(PHP_Invoker.php):无法打开流:没有这样的文件 或目录 C:\用户\南瓜\文件\ GitHub的\ arhano \代码库\ arhanoii \厂商\ yiisoft \ YII \框架\ YiiBase.php 在第423行
警告:include():无法打开'PHP_Invoker.php'以包含在内 (include_path中=”; C:\用户\南瓜\文件\ GitHub的\ arhano \代码库\ arhanoii \ componen TS; C:\用户\南瓜\文件\ GitHub的\ arhano \代码库\ arhanoii \模型; C:\ XAMPP \ PHP \ PEAR') 在C:\ Users \ pumpkin \ Documents \ GitHub \ arhano \ codebase \ arhanoii \ 第423行的vendor \ yiisoft \ yii \ framework \ YiiBase.php
看起来我必须安装phpunit / PHP_Invoker,但这是不可能的,因为它需要pcntl PHP扩展,在Win上不是avilabe。
你知道如何将此警告静音吗?是否可以在不使用PHP_Invoker的情况下在Windows上运行Yii测试?
答案 0 :(得分:8)
这是一个适合我的解决方案: https://github.com/yiisoft/yii/issues/1907#issuecomment-14519537
引用:
- 去了pear.phpunit.de
- 手动下载PHP_Invoker实用程序类
- 将文件解压缩到我女儿的Mac上(我正在运行Windows)
- 将“Invoker”目录放在C:\ xampp \ php \ pear \ PHP
下- 将“Invoker.php”文件放在C:\ xampp \ php \ pear \ PHP
下
我在Windows 7机器上,解压缩工作正常。不需要mac ...
在任何情况下测试都运行良好,但现在我没有烦人的长 “include(PHP_Invoker.php):无法打开流” 每次在测试期间发生错误时都会显示消息。
答案 1 :(得分:1)
关注this tutorial并进行了一些小调整。
它基本上克隆了Invoker回购。我认为Invoker仍然无法工作,但它会阻止PHPUnit出错:
{
"repositories": [
{
"type": "composer",
"url": "http://packages.phundament.com"
},
{
"type": "package",
"package": {
"name": "phpunit/php-invoker",
"version": "1.1.3",
"source": {
"type": "git",
"url": "http://github.com/sebastianbergmann/php-invoker",
"reference": "master"
},
"autoload": {
"classmap": [
"src/"
]
}
}
}
],
"require-dev": {
"phpunit/phpunit": "4.1.*",
"phpunit/phpunit-selenium": "*",
"phpunit/phpunit-skeleton-generator": "*",
"phpunit/dbunit": "*",
"phpunit/phpunit-story": "*",
"phpunit/php-invoker": "*",
"phpunit/phpunit-mock-objects": "*"
}
}
答案 2 :(得分:0)
该文件是(PSR-0兼容)PHP/Invoker.php
,因此您需要更改YiiBase.php并将_
替换为/
。
答案 3 :(得分:0)
@cweiske:该行实际上是由PHPUnit的autoload()使用的,因此无法更改。
@Alex:我在这里遇到同样的问题,原因是PHPUnit的PHP_Invoker不能与Windows一起使用,因为它依赖于名为“pcntl”的扩展,它只适用于UNIX系统。由于问题来自在Windows上运行的第三方框架,我相信Sebastian Bergmann不会太在意这个问题:https://github.com/sebastianbergmann/php-invoker/issues/6
无论如何,测试似乎运行良好。所以......
答案 4 :(得分:0)
适用于我的phpunit安装指南(Windows 7,XAMPP): http://learnyii.blogspot.com/2011/08/how-to-install-phpunit-on-windows.html
在命令提示符下(作为管理员):
pear channel-update pear.php.net
pear upgrade-all
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear update-channels
pear install -a -f phpunit/PHPUnit
P.S。
如果您收到 PHPUnit_Extensions_Selenium_TestCase 的错误,请使用:
pear install phpunit/PHPUnit_Selenium
如果 PHPUnit_Extensions_Story_TestCase 出现错误,请使用:
pear install phpunit/PHPUnit_Story