当我运行vendor/bin/phpunit
时,我的测试全部成功运行。但是,当我右键单击测试文件并单击“运行测试”时,我最终会看到:
/usr/local/bin/php -dxdebug.coverage_enable=1 /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php --coverage-clover /Users/bkuhl/Library/Caches/WebIde70/coverage/services$tests.coverage --no-configuration /Users/bkuhl/Projects/myproject/services/app/tests
Testing started at 3:09 PM ...
Fatal error: Class IDE_PHPUnit_Framework_TestListener contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Framework_TestListener::addRiskyTest) in /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php on line 504
PHP Fatal error: Class IDE_PHPUnit_Framework_TestListener contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Framework_TestListener::addRiskyTest) in /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php on line 504
Call Stack:
0.0008 340040 1. {main}() /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php:0
PHP Stack trace:
PHP 1. {main}() /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php:0
Process finished with exit code 255
我已将PHPStorm配置为使用path/to/vendor/autoload.php
为了这个屏幕截图的目的,我暂时改变了这个目录的路径,但它是一个非常有效的路径。
有没有人使用PHPStorm运行测试的能力遇到问题?
composer.json:
"require-dev": {
"way/generators": "dev-master",
"way/laravel-test-helpers": "dev-master",
"mockery/mockery": "*",
"codeception/aspect-mock": "*",
"phpunit/phpunit": "3.9.*@dev"
},
答案 0 :(得分:43)
PhpStorm在执行PHPUnit测试时使用包装器/帮助器脚本(用于集成目的:监视执行进度,堆栈跟踪等)。
目前,助手脚本不支持PHPUnit 3.8或3.9 - 仅3.7及以下。
对应的票证:http://youtrack.jetbrains.com/issue/WI-21666 - 观看它(星号/投票/评论)以便在解决时得到通知。
<强> P.S。强>
此问题现已修复,修复程序将在下一个公共EAP版本中提供(比当前的134.1456更新)。
答案 1 :(得分:6)
另一个解决方案: 设置
"phpunit/phpunit": "3.7"
composer.json 中的
并运行
composer update
然后问题就会得到解决。
这也适合我...
答案 2 :(得分:6)
一些名为 andriy komm 的用户根据在故障单线程(http://youtrack.jetbrains.com/issue/WI-21666)中的IDE手动修复php插件添加了解决方案:
解决方法直到修复:
转到/ plugins / php / lib
备份php.jar
使用您拥有的任何工具打开文件,通常是拉链或其他压缩工具,或者使用ubuntu文件辊。
转到scripts / phpunit.php
- 醇>
修改它,搜索“IDE_PHPUnit_Framework_TestListener”类并在其中添加以下行:
public function addRiskyTest(PHPUnit_Framework_Test $ test,Exception $ e,$ time){} 6.保存文件并更新php.jar
注意1:根据您使用的操作系统和工具,您可能需要解压缩 .jar修改并再次将其压缩回jar。使用文件 在ubuntu上滚动我可以跳过这一步,编辑文件并更新 罐子直接。
编辑/tmp/ide-phpunit.php没有帮助,因为它得到了 由phpunit.php文件覆盖,我在上面提到过。
注意2:另外,根据版本,您可能会找到php.jar 别处:
在这里:转到您的用户主目录(windows / linux)和 搜索隐藏目录.Webide,同时是一个数字 取决于你的phpstorm版本(例如G. .Webide70)
或者在这里:我认为早期版本被命名为.IntelliJIdea 虽然是一个数字取决于你的phpstorm版本。
使用相同的路径(/ plugins / php / lib)
为我工作(Windows 7,PHPStorm 7,#PS-133.982)。