Laravel Dusk测试在开发中工作,但在生产中失败



大家好,我有一个 Laravel 应用程序,它通过 Gitlab CI 运行它的 CI,我有一个问题,我的测试使用 dusk 在我的机器上开发中运行良好,但由于某种原因,每当我将其推送到 gitlab CI 时它都会失败......

/** @test */
public function the_login_admin_route_should_login_the_user_with_valid_credentials()
{
/** @var Admin $user */
$user = factory(Admin::class)->create(['password' => bcrypt('secret')]);
$this->browse(function (Browser $browser) use ($user) {
$browser->visit("/admin/auth/login")
->type("email", $user->{Admin::FIELD_EMAIL})
->type("password", "secret")
->click("#login-button")
->waitForText("Logged in Successfully")
->waitForLocation("/admin/")
->assertPathIs("/admin/");
});
}

这是有问题的测试,具体失败的部分是waitForText部分。

我还有另一个 Dusk 测试,它只是检查当您尝试执行/dashboard时,您会被重定向到登录页面,并且一个工作正常,我什至做了一个->assertSee("Login")所以我不认为问题出在xvfb,但我深感困惑。

这是我相对于黄昏测试的 gitlab CI 配置

- chmod a+x ./vendor/laravel/dusk/bin/chromedriver-linux
- xvfb-run ./vendor/laravel/dusk/bin/chromedriver-linux &
- sleep 5
- php artisan serve &
- npm install --silent
- npm run production
- php -d memory_limit=-1 artisan dusk --colors

如您所见,我使用模型工厂来生成用户,并且我已经使用var_dump验证了该用户实际上是已创建并存在于数据库中

的有问题的文本显示为Vuetify小吃栏组件的一部分,有点像出现然后在 5 秒后闪走的吐司,同样,这一切都在我的机器上工作正常,所以我认为组件本身不是问题。

在 CI docker 容器等无头环境中运行其 Dusk 实例时,是否有人对waitForText命令有问题?

您可以为此尝试不同的 docker 映像,例如您可以尝试这个......

在您的 .gitlab-ci.yml 更改中

图片:智利/拉拉维尔-黄昏-CI:稳定

顺便说一句:请发布您的错误...

相关内容

  • 没有找到相关文章

最新更新