2014-12-18 2 views
0

Behat을 구성하려고하는데 오류가 있습니다. 여기에 config가 있습니다 :Symfony2로 동작 구성

default: 
suites: 
    default: 
     contexts: 
      - FeatureContext: 
       session: '@session' 
extensions: 
    Behat\Symfony2Extension: ~ 
    Behat\MinkExtension: 
     sessions: 
     default: 
     symfony2: ~ 

config.yml로 가져 오기. 그리고 분명 실행하려고하면 캐시 나 빈/behat 나는 점점 : 나는 여기에 설명 된 것을 모든 단계가 않습니다

There is no extension able to load the configuration for "default" (in /var/www/ontheway/app/config/behat.yml). Looked for namespace "default", found "framework", "security", "twig", 

: 내가 잘못 behat docs 을 뭐하는 거지?

+0

작성한 YML과 정확히 일치합니까? 그렇다면 두 번째 줄에 잘못 들여 쓰기가됩니다. 거기에 다른 들여 쓰기 수준이 있어야합니다. – kix

답변

2

모든 Symfony2 프로젝트에서 사용하고있는 것을 공유하고 있습니다.

mySymfonyProject/composer.json :

"require": { 
    "behat/behat": "2.5.*@stable", 
    "behat/behat-bundle": "1.0.0", 
    "behat/symfony2-extension": "1.1.2", 
    "behat/mink": "1.5.0", 
    "behat/mink-extension": "~1.3", 
    "behat/mink-selenium2-driver": "1.1.1", 
    "behat/mink-goutte-driver": "1.0.9" 
}, 
"config": { 
    "bin-dir": "bin" 
}, 
"minimum-stability": "dev", 

BEHAT

mySymfonyProject/behat.yml :

밍크 + 셀레늄

COMPOSER Behat 프로젝트에 3,691,363,210

default: context: class: FeatureContext extensions: Behat\Symfony2Extension\Extension: mink_driver: true kernel: env: test debug: true Behat\MinkExtension\Extension: base_url: 'http://mysymfonyproject.local/app_test.php/' javascript_session: selenium2 browser_name: firefox goutte: ~ selenium2: ~ paths: features: %behat.paths.base%/src bootstrap: %behat.paths.features%/Context 

셀레늄

다운로드. here, 페이지 중간에있는 2.43.1 버전을 다운로드하십시오.

실행을 : java -jar selenium-server-standalone-2.43.1.jar

CONTEXT 기능

mySymfonyProject/SRC/사이트/CommonBundle/기능/컨텍스트/FeatureContext.php

<?php 

namespace Site\CommonBundle\Features\Context; 

use Behat\MinkExtension\Context\MinkContext; 
use Behat\Symfony2Extension\Context\KernelAwareInterface; 
use Symfony\Component\HttpKernel\KernelInterface; 

class FeatureContext extends MinkContext implements KernelAwareInterface 
{ 
    /** 
    * Hold Symfony kernel object. 
    * 
    * @var object Kernel Object. 
    */ 
    protected $kernel; 

    /** 
    * Helps to use doctrine and entity manager. 
    * 
    * @param KernelInterface $kernelInterface Interface for getting Kernel. 
    */ 
    public function setKernel(KernelInterface $kernelInterface) 
    { 
     $this->kernel = $kernelInterface; 
    } 

    //And your own methods 
} 

TESTS

기능 파일을 가지고있을 때 이와 같이 실행할 수 있습니다 (이것은 한 번에 모두 실행됩니다). 자세한 내용은 behat doc을 참조하십시오.)

bin/behat @SiteCommonBundle 
2

config.ymlbehat.yml을 가져올 필요가 없습니다.

Behat은 Symfony와는 독립적으로 작동합니다. 그리고 이러한 설정은 엉망이 될 수 없습니다. 제공하는 링크의 문서에서 behat.yml이 프로젝트의 루트 폴더에 있어야한다는 것을 알 수 있습니다.

+0

와우. 그것은 정답과 매우 흡사합니다. @Panzer_Commander가 YML을 가져 오는 것을 알지 못했습니다. – kix

+0

좋아요, 나는 설정에 emat을 가져 오는 것을 제외합니다. 하지만 이제 bin/behat를 실행할 때이 오류''FeatureContext' 컨텍스트 클래스를 찾을 수없고 사용할 수 없습니다.' – nowiko

+0

'PROJECT_ROOT/features/Context'에'FeatureContext.php'를 두었습니까? –