【发布时间】: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