<p>移行を使用してデフォルトのユーザーテーブル(Laravelに付属)にフィールドを追加したLaravelパッケージがあります。</p>
<pre class="brush:php;toolbar:false;">パブリック関数 up() : void
{
Schema::table('users', function (Blueprint $table) {
$table->enum('role', ['super-admin', 'admin', 'tipster', 'user'])->default('user');
});
}
</pre>
<p>単体テストを実行しようとすると、パッケージにデフォルトのユーザーテーブルが存在しないため、テストが失敗します。 </p><p>この特性を使用する場合、フレームワークによって提供される移行を実行する方法はありますか?この問題を解決するために回避策を使用しましたが、単体テストのためだけにコードを変更したくありません。 </p>
<pre class="brush:php;toolbar:false;">パブリック関数 up() : void
{
if (App::runningUnitTests())
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$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->timestamps();
});
}
それ以外
{
Schema::table('users', function (Blueprint $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>
Orchestrator Testbench の開発者もこれを考慮していたことが判明しました。メソッドを呼び出して、Laravel が提供する移行ファイルを含めることができます。
リーリー