10

我想知道是否可以通过命令行设置 base_url。例子

bin/behat --base_url=http://google.fr

出于灵活性的目的,我想避免每次必须测试新的 url 时创建新的配置文件并通过命令行传递它。

这里有什么技巧吗?

谢谢你。

4

4 回答 4

13

我自己找到了解决方案。

只需在 BEHAT_PARAM 环境变量中传递 base_url。

export BEHAT_PARAMS="context[parameters][base_url]=http://google.fr"

然后运行 ​​behat

bin/behat
于 2013-11-07T09:55:48.020 回答
12

或者,如果您使用 Mink,您可以在 behat.yml 中定义配置文件

# behat.yml
default:
    extensions:
        Behat\MinkExtension\Extension:
            base_url: http://local.mysite.com
            goutte: ~
            selenium2: ~

dev:
    extensions:
        Behat\MinkExtension\Extension:
            base_url: http://dev.mysite.com

然后你可以在默认情况下对 local.mysite.com 运行测试

$ behat

或反对 dev.mysite.com

$ behat --profile=dev
于 2013-11-08T16:35:07.453 回答
5

在 Behat 3 中,这个参数似乎变成了 JSON,所以它的工作方式如下:

export BEHAT_PARAMS='{"extensions":{"Behat\\MinkExtension":{"base_url":"https://google.com/"}}}'

重要的是,这些参数不是覆盖,它们是默认值,并被behat.yml覆盖。因此,您必须取消设置 behat.yml 中的 base_url 才能使此 CLI 设置生效。

extensions:
  Behat\MinkExtension:
    # YOU MUST EDIT THIS YOURSELF!
    # Either set this here, or set the base_url via BEHAT_PARAMS
    # base_url: 'https://my.livesite.com/'

(参考:功能请求线索

于 2015-05-17T15:54:42.463 回答
4

实现与您的答案相同的更短的方法是在命令本身之前传递环境变量:

BEHAT_PARAMS="context[parameters][base_url]=http://google.fr" bin/behat
于 2014-10-28T05:55:52.263 回答