2

大家好,我有一个 Laravel 应用程序,它通过 Gitlab CI 运行它的 CI,我有一个问题,我使用黄昏的测试在我的机器上运行良好,但由于某种原因,每当我将它推送到 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 秒后闪烁,这一切在我的机器上都可以正常工作,所以我认为组件本身不是问题。

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

4

1 回答 1

0

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

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

图片:chilio/laravel-dusk-ci:stable

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

于 2017-10-04T02:34:27.250 回答