Ujian phpunit Laravel tidak dapat mencari objek TestCase pada timbunan panggilan
P粉733166744
2023-08-26 20:14:38
<p>Tempat untuk menjalankan semua ujian
<kod>php ujian artisan</code>
Semuanya berfungsi seperti yang diharapkan dan semua ujian dijalankan</p>
<p>Sekarang apabila saya menjalankan ujian isyarat <kod>php artisan test --filter test_get_profile</code>
<pre class="brush:php;toolbar:false;">Ralat berlaku di dalam PHPUnit.
Mesej: Tidak dapat mencari objek TestCase pada timbunan panggilan
Lokasi: D:laragonwwwprojectvendorphpunitphpunitsrcTextUITestRunner.php:68</pre>
<p>Tetapi beberapa ujian lain masih berfungsi, seperti test_login dan test_register berfungsi, tetapi apabila saya mencipta ujian baharu, kadangkala ia berfungsi, kadangkala saya mendapat ralat berwayar ini</p>
<p>PS: Saya menambah contoh laluan fail<kod>php artisan test tests/Ciri/AccountTest.php --filter test_get_profile</code> laluan fail< ;/ p>
<p>Sila<strong> ambil perhatian bahawa semua ujian adalah kosong</strong></p>
<pre class="brush:php;toolbar:false;">public function test_get_profile(): void
{
$respons = $this->get('/');
$response->assertStatus(200);
}</pre>
<p>Adakah sesiapa tahu tentang masalah ini?我正在使用 laravel 10 和 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"
warna="benar"
>
<testsuites>
<testsuite name="Unit">
<akhiran direktori="Ujian.php">./tests/Unit</direktori>
</testsuite>
<testsuite name="Ciri">
<akhiran direktori="Ujian.php">./tests/Ciri</direktori>
</testsuite>
</testsuites>
<sumber>
<termasuk>
<akhiran direktori=".php">./app</directory>
</include>
</sumber>
<php>
<env name="APP_ENV" value="pengujian"/>
<env name="BCRYPT_ROUNDS" nilai="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="segerakkan"/>
<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;
gunakan TestsTestCase;
kelas UserTest memanjangkan TestCase
{
fungsi awam test_login(): void
{
$respons = $this->get('/');
$response->assertStatus(200);
}
fungsi awam test_register(): void
{
$respons = $this->get('/');
$response->assertStatus(200);
}
}</pra>
<p>AccountTest.php</p>
<pre class="brush:php;toolbar:false;">namespace TestsFeature;
gunakan TestsTestCase;
class AccountTest memanjangkan TestCase
{
/*** Contoh ujian ciri asas.*/
fungsi awam test_get_profile(): void
{
$respons = $this->get('/');
$response->assertStatus(200);
}
}</pre></p>
Ini ialah pepijat dalam PHPUnit.
https://github.com/sebastianbergmann/phpunit/issues/5403
Ini penyelesaiannya -
. bd89Jalankan kemas kini Komposer untuk mendapatkan versi terkini.