検索

ホームページ  >  に質問  >  本文

Laravel phpunit テストがコールスタックで TestCase オブジェクトを見つけることができません

<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粉733166744P粉733166744460日前697

全員に返信(1)返信します

  • P粉832490510

    P粉8324905102023-08-27 14:14:10

    これは PHPUnit のバグです。

    https://github.com/sebastianbergmann/phpunit/issues/5403< /p>

    これが修正です -

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

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

    返事
    0
  • キャンセル返事