从命令行Behat“base_url”

时间:2013-11-06 14:49:05

标签: behat mink

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

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

我想避免创建新的配置文件,并在每次必须测试新网址时通过命令行传递它,以实现灵活性。

这里有什么技巧吗?

谢谢。

4 个答案:

答案 0 :(得分:13)

我自己找到了解决方案。

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

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

然后运行behat

bin/behat

答案 1 :(得分: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

答案 2 :(得分:5)

在Behat 3中,此参数似乎已成为JSON,因此它的工作方式如下:

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

重要这些参数不是覆盖,它们是默认值,并且由behat.yml获取覆盖。 因此,您必须UNSET 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/'

(参考:feature-requestclue

答案 3 :(得分:4)

实现与your answer相同的更短方式只是在命令本身之前传递环境变量:

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