【问题标题】:PHPUnit Laravel - $suiteClassName is an objectPHPUnit Laravel - $suiteClassName 是一个对象
【发布时间】:2018-01-10 19:17:37
【问题描述】:

我正在尝试测试我在 Laravel 5.4 中制作的应用程序,但是当我在控制台上键入 phpunit 命令时,我收到此错误:

PHP 警告:is_dir() 期望参数 1 是有效路径、对象 给出 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php 第 56 行

警告:is_dir() 期望参数 1 是有效路径,给定对象 在 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php 在第 56 行 PHP Recoverable fatal error: Object of class PHPUnit\Framework\TestSuite 无法转换为字符串 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php 在第 32 行

可恢复的致命错误:PHPUnit\Framework\TestSuite 类的对象 无法转换为字符串 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php 在第 32 行 ~/code/intranet $ phpunit PHP 警告:is_dir() 期望 参数 1 为有效路径,对象为 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php 第 56 行

警告:is_dir() 期望参数 1 是有效路径,给定对象 在 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php 在第 56 行 PHP Recoverable fatal error: Object of class PHPUnit\Framework\TestSuite 无法转换为字符串 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php 在第 32 行

可恢复的致命错误:PHPUnit\Framework\TestSuite 类的对象 无法转换为字符串 /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php 在第 32 行 ~/code/intranet $

错误引用的参数以及代码中某处被转换为对象而不是字符串的 $suiteClassName 变量

public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '')
    {
        if (\is_dir($suiteClassName) &&
            !\is_file($suiteClassName . '.php') && empty($suiteClassFile)) {
            $facade = new File_Iterator_Facade;
            $files  = $facade->getFilesAsArray(
                $suiteClassName,
                $suffixes
            );

            $suite = new TestSuite($suiteClassName);
            $suite->addTestFiles($files);

            return $suite;
        }

提前感谢您的帮助

【问题讨论】:

  • 不确定问题是什么。该错误是不言自明的,因此请停止传递对象。
  • 传递套件类文件名而不是套件类名称
  • 感谢大家的回答,问题是 $suiteClassFile 是一个空字符串,我无法弄清楚这两个变量在哪里被实例化。我认为我没有编辑 Laravel 的供应商目录,所以一切都应该是默认的。

标签: php laravel testing phpunit


【解决方案1】:

原因是您已将 php 版本升级到 7.0+ 。所以你需要修复你的 composer.json 。在 phpunit 选项上使用“~6.3”而不是“~5.x”。 5.x 版适用于 php 5.4,但不适用于 php 7.0+

【讨论】:

    猜你喜欢
    • 2016-12-27
    • 1970-01-01
    • 2019-09-06
    • 2015-11-06
    • 2013-12-06
    • 2016-11-18
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多