gpt4 book ai didi

laravel - 使用 phpunit.xml、.env.dusk.local 和 sqlite 内存数据库在 Dusk 中设置 Laravel 5.4

转载 作者:IT王子 更新时间:2023-10-29 06:24:11 24 4
gpt4 key购买 nike

标题说明了一切。我想知道如何使用内存中的 SQLite 数据库使用 Dusk 正确设置新的 Laravel 5.4 项目。

我可以运行测试,但出现错误:“没有这样的表:用户”

  • 我已经创建了一个新的 Laravel 5.4 项目
  • 安装了 Dusk 并添加了服务提供商
  • 我正在使用来自 laravel docs 的测试测试身份验证。它已经包含 DatabaseMigrations 特征
  • 我可以运行测试,第一个有效(导航到/login 路由)但第二个尝试登录失败。

我添加了一个 .env.dusk.local 其中包含

APP_ENV=local
APP_KEY=RANDOM_STRING_HERE
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://laravel54.dev

DB_CONNECTION=sqlite
DB_DATABASE=':memory:' // I've also tried just :memory: and also adding these details to the config/database.php file but to no avail

这是我正在运行的测试(直接来自 the docs )

<?php

namespace Tests\Browser;

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

class LoginTest extends DuskTestCase
{
use DatabaseMigrations;

public function test_login_page()
{
$user = factory(User::class)->create();

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

我错过了什么?

最佳答案

你不能

需要注意的是,对于这种端到端的测试,Dusk 将无法控制环境,因为它会打开一个单独的进程。内存中的 SQLite 仅存在于 Dusk 进程下,而访问应用程序的真实浏览器将不知道 Dusk 创建的数据库,因此无法断言数据库中的任何内容。

https://github.com/laravel/dusk/issues/110

https://github.com/laravel/dusk/issues/73

关于laravel - 使用 phpunit.xml、.env.dusk.local 和 sqlite 内存数据库在 Dusk 中设置 Laravel 5.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41908118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com