2013-09-04 2 views
1

에서 나는 이것이 가능 ...매개 변수 behat.yml

behat.yml - 

default: 
    extensions: 
     Behat\MinkExtension\Extension: 
      base_url: 'my-url' 

매개 변수가 parameters.yml에서 가져온 만들고 싶어? parameters.yml에서 mink_base_url 매개 변수를 만들고 나서

imports: 
    - { resource: parameters.yml } 

을 behat.yml에 추가했습니다. 내가하는 일과 상관없이, 나는 이것을 얻는다.

[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]         
The service "behat.mink.context.initializer" has a dependency on a non-existent parameter "mink_base_url" 
+0

내 게시물에서 고맙다고 말할 수는 없습니까? 와우 ... – Brandon

+0

"감사합니다", "도와주세요"및 기타는 질문에 아무 것도 추가하지 않으므로 fluf로 간주됩니다. – Veve

답변

0

어떤 방식으로도 Symfony와 관련이 없다. Behat이 Symfony의 DI 컨테이너를 사용하는 것은 사실이지만 별도의 인스턴스입니다.

구현하고 싶다면 imports 섹션을 지원하는 자체 Behat 확장 프로그램을 만들어야 할 수도 있습니다.

+2

behat3를 사용하여 FeatureContext 생성자에서 parameters.yml의 매개 변수를 가져 오는 방법이 있습니까? (symfony2extension을 사용하고 있습니다) –

+0

Symfony 매개 변수가'my-url'이라고 가정하면''my-url'' 대신''% my-url % ''을 사용해야합니다. – MauganRa

0

단지 base_url에 액세스하려는 경우 밍크가 시작되면 가져올 수 있습니다.

$this->getMinkParameter('base_url'); 

다음은 예입니다 : 그것은 __construct 또는 @BeforeSuite에서 작동하지 않도록

class AbstractBehatContext extends MinkContext { 

    /** 
    * The base url as set behat.yml 
    * @var bool 
    */ 
    protected $baseUrl; 

    /** 
    * @BeforeScenario 
    */ 
    public function getBaseUrl() { 

     $this->baseUrl = $this->getMinkParameter('base_url'); 

    } 

} 

주,이, 밍크에 액세스 할 수 있어야합니다. 또한 @BeforeScenario은 무의미하게 많은 것을 설정하려는 모든 시나리오의 시작 부분에서 호출됩니다.

1

이것은 Symfony 3에서 나를 위해 일했습니다. 에서 base_url을 생략하고 컨테이너 매개 변수에서 설정하십시오. 힌트를 제공 해주신 @DanielM에게 감사드립니다.

<?php 

use Behat\MinkExtension\Context\MinkContext; 
use Symfony\Component\DependencyInjection\ContainerInterface; 

class FeatureContext extends MinkContext { 
    /** 
    * FeatureContext constructor. 
    * @param ContainerInterface $container 
    */ 
    public function __construct(ContainerInterface $container) 
    { 
     $this->container = $container; 
    } 

    /** 
    * @BeforeScenario 
    */ 
    public function setUpTestEnvironment() 
    { 
     $this->setMinkParameter('base_url', $this->container->getParameter('my_url')); 
    } 
} 
+0

예, Symfony 3와 Behat 3에서 작동합니다. –