(誰かが私がやりたいことを達成するためのより良い方法を知っている場合に備えて、状況を説明します)。
Symfony2 + Behat + Symfony2Extension + Mink + の使用
シナリオ中にアクセスされる複数の URL を持つアプリケーションがあります。
FeatureContext __construct メソッドから送信されたパラメーターを使用していることは理解していますが、私がしようとしているのは、behat.yml ファイルに URL を設定して、カスタム コンテキストでそれらを使用して URL にアクセスできるようにすることです。
拡張機能がどのように機能するかを見て、次のように依存性注入をセットアップしました。
class Extension implements ExtensionInterface
{
/**
* Loads a specific configuration.
*
* @param array $config Extension configuration hash (from behat.yml)
* @param ContainerBuilder $container ContainerBuilder instance
*/
public function load(array $config, ContainerBuilder $container)
{
$container->setParameter('url_one', $config['url_one']);
$container->setParameter('url_two', $config['url_two']);
}
/**
* Setups configuration for current extension.
*
* @param ArrayNodeDefinition $builder
*/
public function getConfig(ArrayNodeDefinition $builder)
{
$builder->
children()->
scalarNode('one_url')->
isRequired()->
end()->
scalarNode('two_url')->
isRequired()->
end()->
end();
}
code continues....
そして、私の behat.yml は次のようになります。
default:
extensions:
Behat\MinkExtension\Extension:
goutte: ~
selenium2: ~
Behat\Symfony2Extension\Extension: ~
Acme\AcmeExtension\Extension:
url_one: 'http://example1.com'
url_two: 'http:/example2.com'
今私の FeatureContext.php クラスで、次のことをしたいと思います:
$url = $kernel->getContainer()->getParameter('url_one');
しかし、これは機能していません。symfony2extension が有効になっているため、Symfony2 アプリケーションからパラメーターが返されます。しかし、拡張クラスからパラメーターまたはサービスにアクセスできません。
(load メソッドの Extension クラスにいて、設定したパラメーターを呼び出すと、それが返されるので、設定されていることはわかっていますが、別のコンテナーに設定する必要があることに注意してください。)
まず、これは可能ですか?もしそうなら、それを機能させるために私は何をすべきですか?
助けてくれてありがとう。