Der Laravel-PHPUnit-Test kann das TestCase-Objekt nicht im Aufrufstapel finden
P粉733166744
2023-08-26 20:14:38
<p>Wo alle Tests ausgeführt werden sollen
<code>php-Artisan-Test</code>
Alles funktioniert wie erwartet und alle Tests werden ausgeführt</p>
<p>Wenn ich jetzt signle test <code>php artisan test --filter test_get_profile</code> ausführe, erhalte ich diesen kabelgebundenen Fehler</p>
<pre class="brush:php;toolbar:false;">In PHPUnit ist ein Fehler aufgetreten.
Meldung: TestCase-Objekt im Aufrufstapel kann nicht gefunden werden
Ort: D:laragonwwwprojectvendorphpunitphpunitsrcTextUITestRunner.php:68</pre>
<p>Aber einige andere Tests funktionieren immer noch, wie test_login und test_register funktionieren, aber wenn ich neue Tests erstelle, funktioniert es manchmal, manchmal erhalte ich diesen kabelgebundenen Fehler</p>
<p>PS: Ich habe den Dateipfad example<code>php artisan test tests/Feature/AccountTest.php --filter test_get_profile</code> hinzugefügt. Ich erhalte keine Fehlermeldung, weiß aber nicht, dass ich immer den Dateipfad angeben soll ;/ p>
<p>Bitte<strong>beachten Sie, dass alle Tests leer sind</strong></p>
<pre class="brush:php;toolbar:false;">public function test_get_profile(): void
{
$response = $this->get('/');
$response->assertStatus(200);
}</pre>
<p>Kennt jemand dieses Problem?我正在使用 laravel 10 und phpunit 10</p>
<p>phpunit.xml:</p>
<pre class="brush:php;toolbar:false;"><phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
farben="wahr"
>
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<Quelle>
<include>
<directory suffix=".php">./app</directory>
</include>
</source>
<php>
<env name="APP_ENV" value="testing"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<!-- <env name="DB_CONNECTION" value="sqlite"/> -->
<!-- <env name="DB_DATABASE" value=":memory:"/> -->
<env name="MAIL_MAILER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="TELESCOPE_ENABLED" value="false"/>
</php>
</phpunit></pre>
<p>UserTest.php</p>
<pre class="brush:php;toolbar:false;">namespace TestsFeature;
benutze TestsTestCase;
Die Klasse UserTest erweitert TestCase
{
öffentliche Funktion test_login(): void
{
$response = $this->get('/');
$response->assertStatus(200);
}
öffentliche Funktion test_register(): void
{
$response = $this->get('/');
$response->assertStatus(200);
}
}</pre>
<p>AccountTest.php</p>
<pre class="brush:php;toolbar:false;">namespace TestsFeature;
benutze TestsTestCase;
Die Klasse AccountTest erweitert TestCase
{
/*** Ein Beispiel für einen grundlegenden Funktionstest.*/
öffentliche Funktion test_get_profile(): void
{
$response = $this->get('/');
$response->assertStatus(200);
}
}</pre></p>
这是 PHPUnit 中的一个错误。
https://github.com/sebastianbergmann/phpunit/issues/5403
这是修复 -
https://github.com/sebastianbergmann/phpunit/commit/16166431bce84bb100d8e7fe867d612bdfe61776# diff-548ab8441af390a03ab9bf5e83a441aaa67c43de14b247a1426c2983b434bd89
运行 Composer 更新以获取最新版本。