Laravel phpunit テストがコールスタックで TestCase オブジェクトを見つけることができません
P粉733166744
P粉733166744 2023-08-26 20:14:38
0
1
690
<p>すべてのテストを実行する場所 <code>php職人テスト</code> すべてが期待どおりに動作し、すべてのテストが実行されます</p> <p>ここで、signle test <code>php 職人テスト --filter test_get_profile</code> を実行すると、この有線エラーが発生します</p> <pre class="brush:php;toolbar:false;">PHPUnit 内でエラーが発生しました。 メッセージ: コール スタックで TestCase オブジェクトが見つかりません 場所: D:\laragon\www\project\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:68</pre> <p>しかし、test_login や test_register など、他のテストはまだ機能しますが、新しいテストを作成すると、うまく動作することもあれば、この有線エラーが発生することもあります</p> <p>PS: ファイル パスの例を追加しました<code>phpArtisan Test testing/Feature/AccountTest.php --filter test_get_profile</code> エラーは発生しませんが、常にファイルパス</p> <p>すべてのテストは空であることに注意してください</strong></p> <pre class="brush:php;toolbar:false;">パブリック関数 test_get_profile(): void { $response = $this->get('/'); $response->assertStatus(200); }</pre> <p>この問題について知っている人はいますか?私は現在、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" 色="true" > <テストスイート> <テストスイート名="ユニット"> <directory suffix="Test.php">./tests/Unit</directory> </テストスイート> <テストスイート名="機能"> <directory suffix="Test.php">./tests/Feature</directory> </テストスイート> </testsuites> <ソース> <含める> <ディレクトリサフィックス=".php">./app</ディレクトリ> </include> </ソース> <php> <環境名="APP_ENV"値="テスト中"/> <環境名="BCRYPT_ROUNDS"値="4"/> <環境名="CACHE_DRIVER"値="配列"/> <!-- <環境名="DB_CONNECTION"値= "sqlite"/> --> <!-- <環境名="DB_DATABASE"値=":メモリ:"/> --> <環境名="MAIL_MAILER"値="配列"/> <環境名="QUEUE_CONNECTION"値="同期"/> <環境名="SESSION_DRIVER"値="配列"/> <環境名="TELESCOPE_ENABLED"値="false"/> </php> </phpunit></pre> <p>UserTest.php</p> <pre class="brush:php;toolbar:false;">名前空間 Tests\Feature; Tests\TestCase を使用します。 クラス UserTest は TestCase を拡張します { パブリック関数 test_login(): void { $response = $this->get('/'); $response->assertStatus(200); } パブリック関数 test_register(): void { $response = $this->get('/'); $response->assertStatus(200); } }</pre> <p>AccountTest.php</p> <pre class="brush:php;toolbar:false;">名前空間 Tests\Feature; Tests\TestCase を使用します。 クラス AccountTest は TestCase を拡張します { /**※基本的な機能テストの例です。*/ パブリック関数 test_get_profile(): void { $response = $this->get('/'); $response->assertStatus(200); } }</pre></p>
P粉733166744
P粉733166744

全員に返信(1)
P粉832490510

これは PHPUnit のバグです。

https://github.com/sebastianbergmann/phpunit/issues/5403

これが修正です -

https://github.com/sebastianbergmann/phpunit/commit/16166431bce84bb100d8e7fe867d612bdfe61776# diff-548ab8441af390a03ab9bf5e83a441aaa67c43de14b247a1426c2983b434bd89

Composer アップデートを実行して最新バージョンを入手します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート