从命令行Behat"base_url"

lnk*_*nki 10 behat mink

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

bin/behat --base_url=http://google.fr
Run Code Online (Sandbox Code Playgroud)

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

这有什么诀窍吗?

谢谢.

lnk*_*nki 13

我自己找到了解决方案.

只需在BEHAT_PARAM环境变量中传递base_url即可.

export BEHAT_PARAMS="context[parameters][base_url]=http://google.fr"
Run Code Online (Sandbox Code Playgroud)

然后运行behat

bin/behat
Run Code Online (Sandbox Code Playgroud)


小智 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
Run Code Online (Sandbox Code Playgroud)

然后,您可以默认使用local.mysite.com运行测试

$ behat
Run Code Online (Sandbox Code Playgroud)

或者反对dev.mysite.com

$ behat --profile=dev
Run Code Online (Sandbox Code Playgroud)

  • 是的,确定.但正如我所说,我想避免创建配置文件 (2认同)

dma*_*man 5

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

export BEHAT_PARAMS='{"extensions":{"Behat\\MinkExtension":{"base_url":"https://google.com/"}}}'
Run Code Online (Sandbox Code Playgroud)

重要提示这些PARAMS不覆盖,它们是默认值,并获得过书面的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/'
Run Code Online (Sandbox Code Playgroud)

(参考:功能请求,线索)