<p>在哪里运行所有测试
<code>php artisan 测试</code>
一切都按预期工作并且所有测试都运行</p>
<p>现在,当我运行signle test <code>php artisan test --filter test_get_profile</code>时,我收到此有线错误</p>
<pre class="brush:php;toolbar:false;">An error occurred inside PHPUnit.
Message: Cannot find TestCase object on call stack
Location: D:\laragon\www\project\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:68</pre>
<p>但其他一些测试仍然有效,例如 test_login 和 test_register 有效,但是当我创建新测试时,有时它有效,有时我会收到此有线错误</p>
<p>PS:我添加文件路径示例 <code>php artisan test tests/Feature/AccountTest.php --filter test_get_profile</code> 我没有收到任何错误,但我不知道要始终包含文件路径</ p>
<p>请<strong>注意所有测试都是空的</strong></p>
<pre class="brush:php;toolbar:false;">public function test_get_profile(): void
{
$response = $this->get('/');
$response->assertStatus(200);
}</pre>
<p>有人知道这个问题吗?我正在使用 laravel 10 和 phpunit 10
<p>phpunit.xml:</p>
<测试套件>
<测试套件名称=“单元”>
<目录后缀=“Test.php”>./tests/Unit
</测试套件>
<测试套件名称=“功能”>
<目录后缀=“Test.php”>./tests/Feature
</测试套件>
</测试套件>
<来源>
<包括>
<目录后缀=“.php”>./app目录>
</包括>
</来源>
<环境名称=“APP_ENV” value="测试"/>
<env name=“TELESCOPE_ENABLED”值=“假”/>
</php>
</phpunit></pre>
<p>UserTest.php</p>
命名空间 Tests\Feature;
使用测试\测试用例;
类 UserTest 扩展 TestCase
{
公共函数 test_login(): void
{
$response = $this->get('/');
$响应->assertStatus(200);
}
公共函数 test_register(): void
{
$response = $this->get('/');
$响应->assertStatus(200);
}
}</前>
<p>AccountTest.php</p>
命名空间 Tests\Feature;
使用测试\测试用例;
AccountTest 类扩展 TestCase
{
/*** 一个基本功能测试示例。*/
公共函数 test_get_profile(): void
{
$response = $this->get('/');
$响应->assertStatus(200);
}
}</pre></p>
这是 PHPUnit 中的一个错误。
https://github.com/sebastianbergmann/phpunit/issues/5403
这是修复 -
https://github.com/sebastianbergmann/phpunit/commit/16166431bce84bb100d8e7fe867d612bdfe61776# diff-548ab8441af390a03ab9bf5e83a441aaa67c43de14b247a1426c2983b434bd89
运行 Composer 更新以获取最新版本。