php - Laravel 黄昏不工作.env.dusk.local

标签 php laravel laravel-5 laravel-dusk

我有一个应用程序,我想使用 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函数

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' => 'lucas@example.com']);

        $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 中有一个 sqlite 配置,它指向你安装中的实际 .sqlite 文件

所以复制 database.php 中的 sqlite 配置然后粘贴,命名为 sqlite_dusk 或者,然后为数据库的位置把它作为 storage_path('dusk.sqlite') 或类似的东西。然后在 storage 文件夹的根目录下创建一个空白的 dusk.sqlite 文件。

然后在你的.env.dusk设置:

DB_CONNECTION=sqlite_dusk

希望对您有所帮助!

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

相关文章:

php - 使用第一个查询的结果的查询中的第二个查询

javascript - 在 Laravel、vuejs 中通过搜索从两个具有 where 条件的表中获取数据

Php Laravel 很多 if in 种子

php - Laravel:如果字段在传递到 `view` 之前有值,请检查 Controller

javascript - Vue.js : Laravel Mix not combining files

php - 虚拟卡Dav 服务器

php - 如何将渲染后的 PHP+HTML 代码导入到文本文件中?

php - json_encode 在处理多字节子字符串时返回 false

php - Laravel 5.7 登录和注册页面无法正常工作 : refreshing the appropriate pages

mysql - 从数据表中获取值