【发布时间】:2018-07-18 08:31:05
【问题描述】:
我一直在尝试使用内存数据库,同时使用 Laravel Dusk 进行测试。
这里有一个文件.env.dusk.local,具有以下值。
DB_CONNECTION=sqlite
DB_DATABASE=:memory:
这是一个浏览器测试文件的sn-p。
class ViewOrderTest extends DuskTestCase
{
use DatabaseMigrations;
/** @test */
public function user_can_view_their_order()
{
$order = factory(Order::class)->create();
$this->browse(function (Browser $browser) use ($order) {
$browser->visit('/orders/' . $order->id);
$browser->assertSee('Order ABC'); //Order name
});
}
}
php artisan dusk 执行时,Dusk 开始浏览器测试。
但是,Dusk 似乎正在访问我的本地数据库,因为测试浏览器上有一个仅存在于我本地数据库中的订单名称,而“订单 ABC”预计会显示在浏览器上。
根据文档,Laravel Dusk 允许我们设置the environmental variables.
要强制 Dusk 在运行测试时使用自己的环境文件,请在项目的根目录中创建一个 .env.dusk.{environment} 文件。例如,如果您要从本地环境启动黄昏命令,您应该创建一个 .env.dusk.local 文件。
我不觉得 Dusk 正在访问单独的数据库。
我们将不胜感激。
【问题讨论】:
-
我认为在 Dusk 中使用内存 SQLite 是不可能的。
标签: php laravel laravel-5.5 laravel-dusk