Laravel 패키지 테스트: RefreshDatabase를 사용할 때 프레임워크 마이그레이션을 실행합니다.
P粉955063662
P粉955063662 2023-07-30 13:20:53
0
1
365
<p>마이그레이션을 사용하여 기본 사용자 테이블(Laravel과 함께 제공됨)에 필드를 추가한 Laravel 패키지가 있습니다. </p> <pre class="brush:php;toolbar:false;">공개 함수 up() : void { Schema::table('users', function (청사진 $table) { $table->enum('role', ['super-admin', 'admin', 'tipster', 'user'])->default('user'); }); } </pre> <p>단위 테스트를 실행하려고 하면 패키지에 기본 사용자 테이블이 없기 때문에 테스트가 실패하게 됩니다. </p><p>이 특성을 사용할 때 프레임워크에서 제공하는 마이그레이션을 실행할 수 있는 방법이 있나요? 이 문제를 해결하기 위해 해결 방법을 사용했지만 단위 테스트만을 위해 코드를 수정하고 싶지는 않습니다.


<pre class="brush:php;toolbar:false;">공개 함수 up() : void { if (앱::runningUnitTests()) { Schema::create('users', function (청사진 $table) { $테이블->id(); $table->string('이름'); $table->string('email')->unique(); $table->enum('role', ['super-admin', 'admin', 'tipster', 'user'])->default('user'); $table->timestamp('email_verified_at')->nullable(); $table->string('비밀번호'); $table->rememberToken(); $table->타임스탬프(); }); } 또 다른 { Schema::table('users', function (청사진 $table) { $table->enum('role', ['super-admin', 'admin', 'tipster', 'user'])->default('user'); }); } }<span style="font-family:'sans serif, tahoma, verdana, helvetica';"><span style="white-space:nowrap;"> </span></span> </pre> <p><br /></p>
P粉955063662
P粉955063662

모든 응답(1)
P粉030479054

오케스트라 테스트벤치 개발자들도 이 점을 고려한 것으로 드러났습니다. Laravel에서 제공하는 마이그레이션 파일을 포함하는 메서드를 호출할 수 있습니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿