【问题标题】:PHPunit Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()PHPunit 未捕获错误:调用未定义的方法 PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()
【发布时间】:2017-06-11 14:29:06
【问题描述】:

我不知道它是否与 Laravel 5.4 有关。当我在安装 laravel 5.4 后运行phpunit 命令而不进行任何更改时,我得到Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() 但是当我运行php artisan dusk 它运行正常

c:\xampp\htdocs\ublocker>phpunit
PHP Fatal error:  Uncaught Error: Call to undefined method
PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1046
Stack trace:
#0 C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(167): PHPUnit_TextUI_TestRunner->handleConfiguration(Array)
#1 C:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
#2 C:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#3 C:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
#4 {main}
thrown in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1046

Fatal error: Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1046
Stack trace:
 C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(167): PHPUnit_TextUI_TestRunner->handleConfiguration(Array)
C:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
C:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
C:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
{main}
thrown in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1046

c:\xampp\htdocs\ublocker>phpunit
PHP Fatal error:  Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1046
Stack trace:
#0 C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(167): PHPUnit_TextUI_TestRunner->handleConfiguration(Array)
#1 C:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
#2 C:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#3 C:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
#4 {main}
thrown in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1046

Fatal error: Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1046
Stack trace:
#0    C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(167): PHPUnit_TextUI_TestRunner->handleConfiguration(Array)
#1 C:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
#2 C:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#3 C:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
#4 {main}
thrown in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1046

c:\xampp\htdocs\ublocker>php artisan dusk
PHPUnit 5.7.7 by Sebastian Bergmann and contributors.

F.                                                                  2 / 2 (100%)

任何想法如何解决这个问题?

【问题讨论】:

    标签: laravel phpunit laravel-5.4


    【解决方案1】:

    您的全局安装版本似乎不符合最低要求版本。尝试运行

    phpunit --version
    

    我打赌你会得到类似5.1 的东西。 php artisan dusk 命令使用位于 vendor/bin/phpunit 中的不同版本。因此,您也可以改用此版本。只需输入:

    vendor/bin/phpunit
    

    而不是phpunit。如果可以,您必须升级您的全局 phpunit 版本。

    【讨论】:

    • 我尝试全局更新 phpunit,但仍然无法正常工作。我打赌我的 xampp 会导致这个错误。你如何在 xampp 中更新 phpunit?他们仍在使用 phpunit 3.5.7 版本
    • 您是否按照我所说的在终端中使用“vendor/bin/phpunit”启动它?
    • 是的,我做到了,而且效果很好,但我仍然很好奇如何在全球范围内更新它。每次运行测试都运行vendor\bin\phpunit不是很方便吧?
    • 下一步操作很大程度上取决于您的操作系统。基本上你必须找到你的二进制文件在哪里并用一个新的替换它
    • 你是对的。我只是删除 xampp\php 目录中的 phpunit 相关文件(文件和批处理文件)。它不再与我项目中的 phpunit 冲突
    【解决方案2】:

    在 Laravel 5.4 中遇到了同样的问题。这对我有用。

    第 1 步:更新您的作曲家

    composer update
    

    第 2 步:运行 phpunit

    vendor/bin/phpunit
    

    您可以通过指定文件来运行特定的测试

    vendor/bin/phpunit tests/Feature/ExampleTest.php
    

    【讨论】:

    • 是的,您可以运行 一个 特定测试。如何在无法访问php bin/phpunit 命令的情况下运行所有​​测试?
    【解决方案3】:

    在我的例子中,以下命令在 Windows 环境中工作,\ 代替了/

    vendor\bin\phpunit
    

    【讨论】:

      【解决方案4】:

      我在使用 homestead laravel 5.6 时遇到了同样的错误 当我从我的用户运行 phpunit 命令时,它工作正常,但是当我通过 sudo 运行它时,我得到了那个错误。尝试从您的用户而不是 sudo 运行此命令,也许它也适合您

      【讨论】:

        【解决方案5】:

        一种解决方案是将 vendor/bin 添加到路径的开头。在运行 bash 的类 Unix 操作系统上,您可以将以下内容添加到 .bashrc 文件的末尾:

        export PATH=vendor/bin:$PATH
        

        在 Windows 10 中,您可以访问您的 Path 环境变量,方法是访问系统属性高级选项卡并单击环境变量... em> 按钮。

        无论哪种方式,在路径前面插入 vendor/bin 都会导致您的操作系统在 ./vendor/bin 中查找 phpunit。如果你在你的 laravel 项目的根目录下,它会找到 Laravel 包含的可执行文件。如果没有,它将继续使用全球版本。

        【讨论】:

          【解决方案6】:

          我有同样的问题并通过此步骤解决:

          检查差异版本

          $ phpunit --version
          PHPUnit 6.5.5 by Sebastian Bergmann and contributors.
          
          $ ./vendor/bin/phpunit --version
          PHPUnit 8.3.5 by Sebastian Bergmann and contributors.
          

          更新全局phpunit:

          如果版本不相等,则使用

          更新 phpunit
           composer global require phpunit/phpunit:^8
          

          再次检查版本

          $ phpunit --version
          PHPUnit 8.3.5 by Sebastian Bergmann and contributors.
          
          $ ./vendor/bin/phpunit --version
          PHPUnit 8.3.5 by Sebastian Bergmann and contributors.
          

          【讨论】:

            【解决方案7】:

            对于遇到这种情况的任何人,vendor/bin/phpunit 肯定有效,但您可能希望将此行添加到您的 .bashrc 或 .bash_profile 或任何方便您使其工作的内容。

            PATH="./vendor/bin:$PATH"
            

            *仅在 Linux 上测试

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-05-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-06-21
              • 2017-12-26
              相关资源
              最近更新 更多