如何修复 PHPUnit 中的“PHP 致命错误:未捕获的 TypeError:getTest() 参数”错误
Posted
技术标签:
【中文标题】如何修复 PHPUnit 中的“PHP 致命错误:未捕获的 TypeError:getTest() 参数”错误【英文标题】:How to fix 'PHP Fatal error: Uncaught TypeError: getTest() parameter' error in PHPUnit 【发布时间】:2019-12-09 03:35:33 【问题描述】:我正在我的 Laravel 项目中设置 php 单元,但我在第一次运行时收到了致命错误。有人可以帮忙吗?
我在我的 Laravel 项目中运行,使用 Laravel 5.2.45、PHP 7.3.2 和 PHPUnit 7.2.19。这是我第一次尝试做一些测试,但是当我执行测试时总是收到错误。
我希望当我运行 phpunit 时收到资产 true,但我收到以下错误:
PHP 致命错误:未捕获的 TypeError:传递给 PHPUnit\Runner\BaseTestRunner::getTest() 的参数 1 必须是字符串类型,给定对象,在 /usr/share/php/PHPUnit/TextUI/Command.php 中调用在第 180 行并在 /usr/share/php/PHPUnit/Runner/BaseTestRunner.php:59 中定义 堆栈跟踪:
0 /usr/share/php/PHPUnit/TextUI/Command.php(180): PHPUnit\Runner\BaseTestRunner->getTest(Object(PHPUnit\Framework\TestSuite), '', Array)
1 /usr/share/php/PHPUnit/TextUI/Command.php(159): PHPUnit\TextUI\Command->run(Array, true)
2 /usr/bin/phpunit(34): PHPUnit\TextUI\Command::main()
3 主要 在第 59 行的 /usr/share/php/PHPUnit/Runner/BaseTestRunner.php 中抛出
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ExampleTest extends TestCase
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
$this->assertTrue(true);
【问题讨论】:
您找到解决方案了吗? 你好。是的,我昨天找到了。我必须停止这个项目才能在另一个项目中工作。昨天我回来了,问题是我试图在错误的目录中执行。但是现在当我尝试执行具有多个功能的 teste 文件时,我遇到了另一个问题... 【参考方案1】:见documentation
你必须通过命令创建你的测试
// Create a test in the Unit directory...
php artisan make:test UserTest --unit
如果您已经这样做了,请检查您的 Tests\TestCase
,运行 composer dump-autoload
并重试
您也可以使用Codeception 和Laravel5 module 进行测试
【讨论】:
谢谢。问题是我试图在错误的目录中执行 phpunit。感谢您的帮助。以上是关于如何修复 PHPUnit 中的“PHP 致命错误:未捕获的 TypeError:getTest() 参数”错误的主要内容,如果未能解决你的问题,请参考以下文章
如何修复wordpress中的php致命错误和http错误500
PHPUnit CodeIgniter 生成夹具 PHP 致命错误:找不到类“PHPUnit_Framework_TestCase”