我有一个应用程序,我想使用Laravel Dusk。

我创建了一个名为.env.dusk.local的文件和一个用于测试的数据库,并创建了一个名为.env的文件和我的默认数据库。

我运行了php artisan命令,并通过/register创建了一个用户。

在使用相同的电子邮件但使用不同的密码创建了登录测试之后,这将不是问题,因为在.env.dusk.local中它将是不同的银行,并且不会注册任何用户。

但是,当我运行php artisan dusk命令时,它将从原始.env中获取信息,并最终从默认数据库中删除了所有记录。

我想知道如何从.env.dusk.local加载信息并使用测试数据库。

.env默认

APP_ENV=local
APP_KEY=base64:K8otIkxJk0rFsZYSEq1hwBuaxQX3QI3Bb7ZmemJRIWg=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost:8000

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_dusk
DB_USERNAME=root
DB_PASSWORD=123456

.env.dusk.local
APP_ENV=local
APP_KEY=base64:K8otIkxJk0rFsZYSEq1hwBuaxQX3QI3Bb7ZmemJRIWg=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost:8000

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_dusk_test
DB_USERNAME=root
DB_PASSWORD=123456

mu函数用于testLogin
namespace Tests\Browser;

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Support\Facades\App;
use Tests\DuskTestCase;

class LoginTest extends DuskTestCase
{


    use DatabaseMigrations;
    /**
     * A Dusk test example.
     *
     * @return void
     */
    public function testLogin()
    {
        $user = factory(\App\User::class)->create(['email' => '[email protected]']);

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

Here is this project in github

最佳答案

代替.env.dusk.local尝试.env.dusk
另外,我建议您使用临时的sqlite数据库,而不是使用您的mysql数据库,因为它会在测试期间创建和销毁。

您必须在database.php中有一个sqilte配置,该配置指向您在安装中拥有的实际.sqlite文件

因此,将sqlite配置复制到database.php中,然后将其粘贴,将其命名为sqlite_dusk,然后对于数据库的位置,将其放置为storage_path('dusk.sqlite')或类似的名称。然后在dusk.sqlite文件夹的根目录中创建一个空白的storage文件。

然后在您的.env.dusk中设置:

DB_CONNECTION=sqlite_dusk

希望对您有所帮助!

关于php - Laravel黄昏不起作用.env.dusk.local,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43049060/

10-10 06:53