>  Q&A  >  본문

Laravel phpunit 테스트가 호출 스택에서 TestCase 객체를 찾을 수 없습니다

<p>모든 테스트를 실행할 위치 <code>php 장인 테스트</code> 모든 것이 예상대로 작동하고 모든 테스트가 실행됩니다</p> <p>이제 signle test <code>php artisan test --filter test_get_profile</code>을 실행하면 다음과 같은 유선 오류가 발생합니다</p> <pre class="brush:php;toolbar:false;">PHPUnit 내부에서 오류가 발생했습니다. 메시지: 호출 스택에서 TestCase 개체를 찾을 수 없습니다. 위치: D:laragonwwwprojectvendorphpunitphpunitsrcTextUITestRunner.php:68</pre> <p>그러나 test_login 및 test_register와 같은 일부 다른 테스트는 여전히 작동하지만 새 테스트를 만들 때 때로는 작동하고 때로는 이런 유선 오류가 발생합니다</p> <p>PS: 파일 경로 예제를 추가했습니다<code>php artisan test test/Feature/AccountTest.php --filter test_get_profile</code> 오류는 발생하지 않지만 항상 파일 경로를 포함해야 하는지는 모르겠습니다< ;/p> <p>모든 테스트는 비어 있습니다</strong></p> <pre class="brush:php;toolbar:false;">공개 함수 test_get_profile(): 무효 { $response = $this->get('/'); $응답->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" > <테스트 스위트> <테스트 스위트 이름="유닛"> <디렉토리 접미사="Test.php">./tests/Unit</directory> </테스트 스위트> <테스트 스위트 이름="기능"> <디렉토리 접미사="Test.php">./tests/Feature</directory> </테스트 스위트> </테스트 스위트> <출처> <포함> <디렉토리 접미사=".php">./app</directory> </포함> </출처> <php> <환경 이름="APP_ENV" value="테스트 중"/> <env name="BCRYPT_ROUNDS" 값="4"/> <환경 이름="CACHE_DRIVER" 값="배열"/> <!-- <환경 이름="DB_CONNECTION" value="sqlite"/> --> <!-- <환경 이름="DB_DATABASE" 값=":메모리:"/> --> <환경 이름="MAIL_MAILER" 값="배열"/> <환경 이름="QUEUE_CONNECTION" 값="동기화"/> <환경 이름="SESSION_DRIVER" 값="배열"/> <env name="TELESCOPE_ENABLED" 값="false"/> </php> </phpunit></pre> <p>UserTest.php</p> <pre class="brush:php;toolbar:false;">네임스페이스 TestsFeature; TestsTestCase를 사용하십시오. UserTest 클래스는 TestCase를 확장합니다. { 공개 함수 test_login(): 무효 { $response = $this->get('/'); $응답->assertStatus(200); } 공개 함수 test_register(): 무효 { $response = $this->get('/'); $응답->assertStatus(200); } }</pre> <p>AccountTest.php</p> <pre class="brush:php;toolbar:false;">네임스페이스 TestsFeature; TestsTestCase를 사용하십시오. AccountTest 클래스는 TestCase를 확장합니다. { /*** 기본 기능 테스트 예시입니다.*/ 공개 함수 test_get_profile(): 무효 { $response = $this->get('/'); $응답->assertStatus(200); } }</pre></p>
P粉733166744P粉733166744442일 전664

모든 응답(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-548ab8441af390a03ab9bf5e83a441aaa67c43de14b247a1426c2983b 434bd89

    Composer 업데이트를 실행하여 최신 버전을 받으세요.

    회신하다
    0
  • 취소회신하다