自定义环境上下文与behat

时间:2014-01-24 14:48:26

标签: php behat

我们正在使用behat在我们的系统上运行一些功能测试,模拟用户通过我们网站的旅程。我写了一些关于要检查的事物定义的上下文。

因为behat将在不同的环境(我们的开发PC,然后我们的登台服务器......)上运行,所以运行的@BeforeSuite函数需要不同的设置。我将它们放在behat.yml中,带有自定义配置文件,但我不知道如何阅读该信息

那么,我问的是如何在我的上下文文件中找到behat配置信息?

1 个答案:

答案 0 :(得分:1)

behat.yml中配置的参数通过构造函数(在Behat 2中)注入主上下文文件中:

class FeatureContext extends BehatContext
{
    private $parameters;

    public function __construct(array $parameters)
    {
        $this->parameters = $parameters;
    }
}

但是,由于您使用@BeforeSuite,因此上下文实例尚不可用(并且钩子方法是静态的)。

您仍然可以从事件中获取参数:

class FeatureContext extends BehatContext
{ 
    /** @BeforeSuite */
    public static function setup(SuiteEvent $event)
    {
        $parameters = $event->getContextParameters();
    }
}

相关文档:http://docs.behat.org/guides/3.hooks.html#suite-hooks