【问题标题】:Run Laravel Dusk on multiple web domains在多个 Web 域上运行 Laravel Dusk
【发布时间】:2017-12-05 21:39:04
【问题描述】:

我有多个网站。

  1. en.web-site.com/pages/faqs
  2. fr.web-site.com/pages/faqs
  3. ar.web-site.com/pages/faqs
  4. br.web-site.com/pages/faqs
  5. ...另外 30 个具有相同 URI 结构的网站

我想在每个网站上运行浏览器测试。

我已经更新了我所有网站的常见问题页面上的电子邮件,我想测试它们是否都有变化。

<?php

namespace Tests\Browser;

use Tests\DuskTestCase;
use Laravel\Dusk\Browser;

class UpdatedEmailTest extends DuskTestCase
{
    public function testUpdatedEmail()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/pages/faqs')
                ->assertPathIs('/pages/faqs')
                ->assertSee('new_email@sample.com')
                ->assertDontSee('old_email@sample.com');
        });
    }
}

此测试绝对可以在我的任何网站上正常运行,但每次运行时我都必须编辑 .env 文件。

我可以怎样做才能在所有这些网站上进行测试,而无需编辑 .env 文件?

【问题讨论】:

    标签: php laravel laravel-dusk


    【解决方案1】:

    要实现这一点,您可能需要对所有 30 多个网站域进行循环。

    public function testUpdatedEmail()
    {
        $websites = .... //array with full urls and emails
    
        foreach ($websites as $website)
    
          $this->browse(function (Browser $browser) use ($website) {
              $browser->visit($website["url"])
                ->assertPathIs(parse_url($website["url"], PHP_URL_PATH))
                ->assertSee($website["new_email"])
                ->assertDontSee($website["old_email"]);
        });
    }
    

    参考 Browers.php https://github.com/laravel/dusk/blob/bcb05e6fe29817bbf04574f68996312a296bb366/src/Browser.php#L119

    【讨论】:

      猜你喜欢
      • 2017-09-06
      • 2017-06-29
      • 2018-04-02
      • 2018-03-07
      • 1970-01-01
      • 2016-10-26
      • 2020-07-01
      • 2017-02-10
      • 1970-01-01
      相关资源
      最近更新 更多