Test du package Laravel : exécution de migrations de framework lors de l'utilisation de RefreshDatabase.
<p>J'ai un package Laravel qui a ajouté un champ à la table des utilisateurs par défaut (fournie avec Laravel) à l'aide de migrations : </p>
<pre class="brush:php;toolbar:false;">fonction publique up() : void
{
Schema::table('utilisateurs', fonction (Blueprint $table) {
$table->enum('role', ['super-admin', 'admin', 'tipster', 'user'])->default('user');
});
}
≪/pré>
<p>Lorsque je souhaite exécuter mes tests unitaires, cela entraîne l'échec de mes tests car dans mon package, la table des utilisateurs par défaut n'existe pas. </p><p>Existe-t-il un moyen d'exécuter les migrations fournies par le framework lors de l'utilisation de cette fonctionnalité ? J'ai utilisé une solution de contournement pour résoudre ce problème, mais je ne veux vraiment pas modifier le code uniquement pour les tests unitaires. </p><p><br /></p>
<pre class="brush:php;toolbar:false;">fonction publique up() : void
{
si (App::runningUnitTests())
{
Schema::create('utilisateurs', fonction (Blueprint $table) {
$table->id();
$table->string('nom');
$table->string('email')->unique();
$table->enum('role', ['super-admin', 'admin', 'tipster', 'user'])->default('user');
$table->timestamp('email_verified_at')->nullable();
$table->string('mot de passe');
$table->rememberToken();
$table->horodatages();
});
}
autre
{
Schema::table('utilisateurs', fonction (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> ≪/pré>
<p><br /></p>