phpForm中的Phpunit错误

phpForm中的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

我正在PhpStorm中运行测试,我得到了这个错误。有人知道到底是什么引起的吗

PHP致命错误:在中找不到类“PHPUnit\u TextUI\u resultprint” 第249行的C:\Users\administrator1\AppData\Local\Temp\ide-phpunit.php


我在其他项目中运行测试,这些项目也使用了
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