phpForm中的Phpunit错误
我正在PhpStorm中运行测试,我得到了这个错误。有人知道到底是什么引起的吗 PHP致命错误:在中找不到类“PHPUnit\u TextUI\u resultprint” 第249行的C:\Users\administrator1\AppData\Local\Temp\ide-phpunit.phpphpForm中的Phpunit错误,phpunit,phpstorm,Phpunit,Phpstorm,我正在PhpStorm中运行测试,我得到了这个错误。有人知道到底是什么引起的吗 PHP致命错误:在中找不到类“PHPUnit\u TextUI\u resultprint” 第249行的C:\Users\administrator1\AppData\Local\Temp\ide-phpunit.php 我在其他项目中运行测试,这些项目也使用了idephpunit.php,它们运行得很好。我犯了一个愚蠢的错误。。。只是忘了在项目中添加phpunit作为依赖项。对于收到此错误的任何其他人,请向com
我在其他项目中运行测试,这些项目也使用了
idephpunit.php
,它们运行得很好。我犯了一个愚蠢的错误。。。只是忘了在项目中添加phpunit作为依赖项。对于收到此错误的任何其他人,请向composer.json添加:
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
然后运行:
composer update
这就解决了问题。我在PHPStorm中使用各种修饰符-F10键时出现了这个错误,因为它不知道在哪里可以找到正确的PHPUnit 在设置(ctrl-alt-s)中,搜索PHPUnit。在我的情况下,我想设置如下:
- “使用作曲家自动加载器”
- 脚本路径:
(此字段对我来说是空的,对话框中显示了一个错误)项目/vendor/autoload.php的完整路径
否则,它将尝试使用库的某个缓存版本(
/tmp/ide phpunit.php
)而不是编写器版本。如果您喜欢使用一些全局安装的二进制文件,当然可以使用phpunit.phar的路径。在我的例子中,问题是由以下一组原因引起的:
我使用composer和composer require phpunit/phpunit
命令安装了phpunit。我没有注意到默认情况下它使用了php7,并且安装了phpunit6,它的类名带有名称空间(PHPUnit\TextUI\resultprint
)
IDE运行旧版本的phpunit,该版本要求类名没有名称空间(phpunit\u TextUI\u resultprint
)
我决定重新安装phpunit
,运行与上面相同的composer命令,但是在php5.6
下(因为与php5.6兼容很重要),并安装了phpunit 5.7
。
但是可以使用phpunit和php的较新版本:Settings>php>phpunit::“使用composer autoloader”
(在供应商内部设置phpunit可执行文件的路径(在我的例子中是vendors/bin/phpunit
),我得到了相同的错误。通过使用phpunit4.8(旧版本)解决了问题。我通过composer解决了PHP7.1和PHPUnit 6.3的问题,但通过PHPUnit.phar解决了问题。(在选项中:选择phpunit.phar的路径,单击下载并单击刷新)
我在Ubuntu 16.10、phpStorm 2017.2和Laravel 5.5上也遇到了同样的问题
通过使用从我的Ubuntu系统中卸载phpunit修复了它
sudo apt-get remove phpunit
sudo apt-get install --autoremove
或mac:
brew uninstall phpunit
brew install phpunit
我的PhpStorm配置(文件->设置->语言和框架->PHP->测试框架):
很好,现在 在我的例子中,当需要使用远程PHP7(ubuntu)时,phpstorm preferences->php->CLI解释器是在本地设置的
因为我使用vagrant box在ubuntu上配置了我的环境 更新到最新的composer后,composer运行脚本drupal phpunit upgrade
,PHPStorm仍然映射到旧版本,即使我是通过autoloader加载的。我进入了Languages&Frameworks>Php>TestFrameworks,并点击了与“脚本路径”相同行上的刷新按钮
现在我的PHPUnit版本是6.5.8。我最近遇到了类似的错误PHPUnit\u TextUI\u resultprint,在TeamCity.php的第19行中找不到
我正在使用PhpStorm 2018.3.3
。从PhpStorm使用终端时
$phpunit
由塞巴斯蒂安·伯格曼和贡献者编写的PHPUnit 7.5.1。
从我的Ubuntu系统
$phpunit—版本
由塞巴斯蒂安·伯格曼和贡献者编写的PHPUnit 5.1.3。
我必须确保我的Ubuntu系统PHPUnit更新为7.5.1。以下是我所做的:
sudo wget https://phar.phpunit.de/phpunit-7.5.1.phar
sudo chmod +x phpunit-7.5.1.phar
sudo mv phpunit-7.5.1.phar /usr/local/bin/phpunit
然后我去了PhpStorm:
文件>设置>语言和框架>PHP>测试框架,并确保PHPUnit版本也是7.5.1
然后从PhpStorm终端:phpunit
,测试用例运行得非常好。我转到设置并按如下方式设置我的php路径:(根据brew)
那么phpunit可以工作。phpunit版本?它是什么类型的安装(PHAR/Composer)?PhpStorm版本?我解决了这个问题(答案如下)。为了帮助谷歌用户解决这个问题,尽管它是一个composer安装,phpunit 3.7,PhpStorm 9:)不知何故没有解决这个问题,无论是“require”还是任何更高的phpunit版本(5.5),我也没有解决我的问题。。。PHPUnit 6.0.7与PHP7.1.2和PHPStorm 2016.3.2一起发布PHPUnit 6。有一个修复程序尚未合并,但添加了“phpunit/phpunit”:“^9.3.3”完成了操作:-)NB。使用vendor/autoload.php
而不是projectroot的autoload.php
。我用类似的设置解决了同样的问题。唯一不同的是Ubuntu 17.10。@panepeter我只有一个理论来解释为什么。对于我来说,composer的PHPUnit(PU)版本是6.5,系统版本是5.1,我扩展了TestCase类的命名空间版本,因此PU6 TestCase是自动加载的。然而,在某些地方,PU6类使用PU5中存在的类,该类是从系统自动加载的,而不是通过composer。我没有系统版本的自动加载器,所以我只能猜测安装phpunit修改了一些内容,包括在Composer版本之前添加的自动加载器。修复了Ubuntu 20.04上与当前PHPStorm 2020相同的问题。在我所有的TDD项目中,我已经被这个问题困扰了好几个月,在这些项目中我无法使用PHPStorm的TestRunner。无论我如何定义对PHPUnit可执行文件的引用,我都会得到奇怪的错误。从未想过删除发行版的phpunit。我只是在“测试框架设置”中进行了“刷新”,PhpStorm将phpunit更新为最新版本,这很有帮助
/usr/local/opt/php/bin/php