laravel - 带有 laravel Dusk 的测试用例显示错误“users_email_unique”
问题描述
我收到如下截图所示的错误
请帮助我,我正在尝试,为此我花了太多时间,但仍然没有运气。
我正在使用 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);
});
}
}
解决方案
对于 Dusk,您不能使用 use DatabaseTransactions
。你需要DatabaseMigrations
改用。当您更新特征时,您应该摆脱错误。
您在文档中有示例 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 特征。
推荐阅读
- c# - wpf 中的 Tabitems 问题
- python - 从具有大量子文件夹的特定目录中提取 PDF
- javascript - Javascript 说一个对象是一个字符串,不允许我访问它的键值(请求承诺)
- java - JTable中的按钮/复选框有条件
- reactjs - 将参数传递给选项卡导航器 React Navigation 5
- python - 图片 Scrapy 的抓取类名
- java - Websphere 9.00.6 Eclipse 氧气 EAR 部署问题
- wpf - 在 wpf 中居中垂直方向的网格
- cuda - 执行时出现问题:cudnn-install / 2.4。在 Linux 上验证 cuDNN 安装 / cudnn_samples_v7 测试
- vb.net - .NET 中的 Neo4j v4 驱动程序错误