带有laravel Dusk的测试案例,显示错误'users_email_unique'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有laravel Dusk的测试案例,显示错误'users_email_unique'相关的知识,希望对你有一定的参考价值。

我在以下屏幕截图中遇到错误

enter image description here

[我正在尝试帮助我,为此我花了太多时间,但仍然没有运气。

我正在使用laravel官方黄昏包进行前网测试。当我运行登录测试用例时,其显示错误“ users_email_unique”在图片上方。我正在使用use DatabaseTransactions,但它没有还原我的上一次交易。为此,我也使用测试数据库。这是我的代码:

<?php

namespace Tests\Browser;

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
use App\User;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class LoginTest extends DuskTestCase

    use DatabaseTransactions;
    /**
     * A Dusk test example.
     *
     * @return void
     */

    public function test_I_can_login_successfully()
    
        $user = factory(User::class)->create([
            'email' => 'login@gmail.com',
            'password' => bcrypt('password'),
        ]);

        $this->browse(function ($browser) use ($user) 
            $browser->visit('/')
                ->type('email', 'login@gmail.com')
                ->type('password', 'password')
                ->press('Login')
                ->assertSee($user->name);
        );
    

答案

对于黄昏,您不能使用DatabaseTransactions。您需要改用DatabaseMigrations。当更新特征时,您应该摆脱错误。

您在documentation中有示例Dusk测试,看起来像这样:

<?php

namespace Tests\Browser;

use App\User;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Chrome;
use Tests\DuskTestCase;

class ExampleTest extends DuskTestCase

    use DatabaseMigrations;

    /**
     * A basic browser test example.
     *
     * @return void
     */
    public function testBasicExample()
    
        $user = factory(User::class)->create([
            'email' => 'taylor@laravel.com',
        ]);

        $this->browse(function ($browser) use ($user) 
            $browser->visit('/login')
                    ->type('email', $user->email)
                    ->type('password', 'password')
                    ->press('Login')
                    ->assertPathIs('/home');
        );
    

如您所见,它也在使用DatabaseMigrations特性。

以上是关于带有laravel Dusk的测试案例,显示错误'users_email_unique'的主要内容,如果未能解决你的问题,请参考以下文章

作曲家需要 laravel/dusk 错误

如何使用 Laravel Dusk 测试身份验证? [关闭]

经过测试,chrome 进程仍然在 Docker 容器中的 Laravel Dusk

Laravel Dusk 测试运行后从数据库中删除模型?

Laravel Dusk 忽略 .env.dusk 和 .env.dusk.local(使用 Valet 和 Laravel 5.5)

Laravel Dusk:迁移和种子测试数据库一次