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

时间:2017-07-13 14:56:29

标签: laravel selenium-chromedriver gitlab-ci laravel-dusk

大家好我有一个Laravel应用程序通过Gitlab CI运行它的CI我有一个问题我的测试使用黄昏在我的机器上开发运行良好但是由于某种原因它无论什么时候我把它推到gitlab CI ... < / p>

/** @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命令的问题?

1 个答案:

答案 0 :(得分:0)

您可以为此尝试不同的泊坞窗图像,例如您可以尝试这个...

在.gitlab-ci.yml更改

  

image:chilio / laravel-dusk-ci:stable

BTW:请发布您的错误......