php - 使用 Behat/Mink 和 Behat Laravel Extension 测试 Multi-Tenancy Laravel 应用程序

标签 php laravel-5 multi-tenant behat mink

我正在构建一个 Multi-Tenancy SaaS 应用程序,我正在尝试使用 Mink 和 Behat Laravel Extension 为 Behat 编写测试。

当您注册一个帐户时,您会在网站 {account}.tenancy.dev 上获得自己的子域

我的 behat.yml 文件如下所示:

default:
    extensions:
        Laracasts\Behat:
            # env_path: .env.behat
        Behat\MinkExtension:
            default_session: laravel
            base_url: http://tenancy.dev
            laravel: ~

我一开始就遇到了问题,因为当我尝试测试我的注册流程时,我收到一个 404 错误测试,表明新的子域可以访问,所有数据都已正确保存,手动测试该过程是否有效,并且子域路由有效。

我想知道是否有任何方法可以使用 Behat 来执行此操作,以及我将如何设置 Behat/Mink 以使用通配符子域来测试 SaaS 应用程序?

我正在 Homestead VM 中运行测试。

最佳答案

base_url: http://tenancy.dev 配置用于在您使用 mink 步骤(即“/home”)中使用相对路径 URL 时生成完全限定的域 URL。

当您想要访问与 base_url 中指定的域不同的域时,您所要做的就是在您的步骤中使用完全限定的域 URL,例如“http://test.tenancy.dev/fully/qualified”。

因此,请使用 base_url 配置将您将在大部分步骤中使用的内容设置为相对 url,然后明确指定异常(exception)的完整域。

当我创建一个名为 foo 的帐户时 并获取“http://foo.tenancy.dev/ping” 然后我得到一个 200 响应代码 当我回到家” 然后响应包含“注册”

如果您的大部分测试将针对子域,请将其设置为您的 base_url 并在必要时明确指定您的顶级域。

关于php - 使用 Behat/Mink 和 Behat Laravel Extension 测试 Multi-Tenancy Laravel 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849437/

相关文章:

multi-tenant - 如何使用 ASP.NET Identity 实现 Multi-Tenancy 用户登录

php - PCRE 正则表达式中的 "?>"是什么意思?

php - 通过套接字发送 2 个请求

javascript - 在 Laravel 中使用 JavaScript 变量

php - 验证失败后输入中的 Laravel 重置值?

php - 在没有表单的情况下使用 vuejs 和 laravel 上传文件

loopbackjs - 环回 Multi-Tenancy 数据库交换

PHP - 单个数组项作为方法的参数

php - jQuery:带有标题的多个文件上传

multithreading - Grails 1.3.7- Multi-Tenancy 插件和多线程操作-线程无法访问租户