Laravel Dusk:如何在每次测试浏览器之前更改配置值?

Phi*_*ine 5 laravel-dusk

我试图在每次测试之前更改一些配置值。但是,浏览器不应用它们。

在我的 DuskTestCase 文件中:

abstract class DuskTestCase extends BaseTestCase
{
    use CreatesApplication;

    protected function setUp()
    {
        parent::setUp();

        config()->set('cookie-consent.enabled', false);
        config()->set('app.recaptcha', false);
        config()->set('localization.acceptLanguage', false);
    }

    /**
     * Prepare for Dusk test execution.
     *
     * @beforeClass
     * @return void
     */
    public static function prepare()
    {
        static::startChromeDriver();
    }

    ...
Run Code Online (Sandbox Code Playgroud)

配置值在每个测试中都正确设置,但不适用于浏览器。当我删除时,'--disable-gpu'我清楚地看到浏览器仍在使用旧的配置值。

这也能改变吗?

dig*_*out 0

为了获得这样的方法:

$browser
  ->withConfig(['currency' => 'EUR'])
  ->visit('/')
  // -> ..
Run Code Online (Sandbox Code Playgroud)

您需要添加并注册中间件,覆盖浏览器并将其注册到 DuskTestCase 中。详细信息在这里:https://gist.github.com/wrabit/e01df16858505c395b7b0d271112a023