2012-10-04 2 views
2

나는 거의 완성 된 베hat에서 기능/시나리오를 작성한 프로젝트를 가지고있다. symfony가 편리하게 사용할 수있는 사이트에서 이메일 기능을 테스트해야합니다. 그러나 Behat에서 symfony를 구성 할 수있는 자습서를 찾을 수 없었습니다. 대부분의 사이트는 Symfony에서 Behat을 제공하지만 다른 방법은 제공하지 않습니다.심바니 (Behat)에서 심포니 (Symfony) 설정하기

이것은 구성에 대한 정보가 있지만 완료되지 않은 문서입니다. http://extensions.behat.org/symfony2

이 문서 http://docs.behat.org/cookbook/using_the_profiler_with_minkbundle.html은 전자 메일 기능을 확인하는 코드를 제공하지만 Behat에서 symfony를 구성하는 방법은 설명하지 않습니다. symfony 확장을 설치했습니다.

이 내 composer.json의 내용입니다 :

{ 
    "require": { 
     "behat/behat": "*", 
     "behat/mink": "1.4.0", 
     "behat/mink-goutte-driver": "*", 
     "behat/mink-selenium-driver": "*", 
     "behat/mink-selenium2-driver": "*", 
     "behat/mink-sahi-driver": "*", 
     "behat/mink-zombie-driver": "*", 
     "drupal/drupal-extension": "*", 
     "symfony/process": "*", 
     "behat/symfony2-extension": "*", 
     "symfony/form": "*", 
     "symfony/validator": "*", 
     "behat/mink-extension": "*", 
     "symfony/http-kernel": "*", 
     "fabpot/goutte": "dev-master#5f7fd00" 
    }, 
    "minimum-stability": "dev", 
    "config": { 
     "bin-dir": "bin/" 
    } 
} 

사람이 여기에 나를 인도시겠습니까?

+0

Symfony에서 Behat으로 무엇을 구성 하시겠습니까? 그게 무슨 뜻인지 자세히 설명해 주시겠습니까? –

+0

behat.yml 파일을 사용하여 behat를 구성해야합니다. symfony2extension으로 올바르게 설정하면 symfony DIC에 접근 할 수 있습니다. https://github.com/Behat/CommonContexts/blob/master/Behat/CommonContexts/SymfonyMailerContext.php – l3l0

+0

하나를 생각하면 symfony DIC에 액세스 할 수 있습니다. 우리 답장이 당신이 찾고 있던 대답입니다, 받아 들일 수 있습니까? –

답변

0

당신이 달성하고자하는 것을 완전히 이해했는지 모르겠지만 Symfony2 프로젝트의 다른 구성을 얻으려고한다는 사실은 당신이 아마 사용자 정의 환경. See this cookbook article 어떻게 할 지에 대해 알아보십시오.

예를 들어 자신의 구성 파일 (/app/config/config_behat.yml)을 가지며 behat 테스트에서 /app_behat.php/을 사용하여 액세스 할 수있는 "behat"환경을 설정할 수 있습니다.

+0

여기에서 심포니를 실행하지 않습니다. 저는 심포니 2를 확장판으로 사용하는 Behat을 돌리고 있습니다. 필자가 원하는 것은 Behat에서이 symfony2 확장을 구성하는 자습서입니다. –

+0

다음은 Symfony2 확장에 관한 문서입니다. http://extensions.behat.org/symfony2/ Symfony를 실행하지 않으므로 Symfony의 확장 기능이 필요한 이유가 없습니다. . –

10

Symfony 2 (.2) 구성에서는 behat.yml 파일을 루트 폴더에 넣어야합니다. 그러면 composer.json과 동일한 폴더가됩니다.

php bin/behat @AcmeDemoBundle --init 

위의 명령 : 당신이 원하는 번들을 지정하는 behat init command를 시작해야 지금

default: 
    # ... 
    extensions: 
     Behat\Symfony2Extension\Extension: ~ 
     Behat\MinkExtension\Extension: 
      goutte: ~ 
      selenium2: ~ 

:

app/ 
bin/ 
src/ 
vendor/ 
web/ 
behat.yml 
composer.json 

는 작업 behat.yml의 예입니다 안에 FeatureContext 클래스가있는 Features 폴더가 생성됩니다. 이 클래스에 시나리오의 메서드를 넣습니다.

/** 
* @Given /^I am in a directory "([^"]*)"$/ 
*/ 
public function iAmInADirectory($dir) 
{ 
    if (!file_exists($dir)) 
     mkdir($dir); 

    chdir($dir); 
} 

/** 
* @Given /^I have a file named "([^"]*)"$/ 
*/ 
public function iHaveAFileNamed($file) 
{ 
    touch($file); 
} 

/** 
* @When /^I run "([^"]*)"$/ 
*/ 
public function iRun($command) 
{ 
    exec($command, $output); 
    $this->output = trim(implode("\n", $output)); 
} 

/** 
* @Then /^I should get:$/ 
*/ 
public function iShouldGet(PyStringNode $string) 
{ 
    if ((string) $string !== $this->output) 
     throw new \Exception("Actual output is:\n" . $this->output); 
} 

지금 당신이 (같은 예에서 ls.feature) 기능 파일을 만들 필요가 귀하의 Features 폴더 안에 : 공식 안녕하세요 세계 예를 들어 아래의

Feature: ls 
    In order to see the directory structure 
    As a UNIX user 
    I need to be able to list the current directory's contents 

    Scenario: List 2 files in a directory 
     Given I am in a directory "test" 
     And I have a file named "foo" 
     And I have a file named "bar" 
     When I run "ls" 
     Then I should get: 
      """ 
      bar 
      foo 
      """ 

그래서, 당신의 Features 폴더가 보일 것 아래 구조와 같습니다 :

Acme\DemoBundle\Features 
    |- Context/
     |- FeatureContext.php 
    ls.feature 

마지막으로 다음과 같이 실행하십시오. d 즐기십시오! 심포니 behat 실행하는 데 필요한

php bin/behat @AcmeDemoBundle 
1

종속성은 behat, symfony2-확장, 밍크 및 드라이버, 그리고 당신이 원하는 출력을 얻을 수있는 포맷을해야 할 수도 있습니다.

그러면 드라이버, 세션 및 브라우저에 대해 behat.yml을 구성하고 테스트 스위트의 이름을 지정해야합니다.

일단이 작업을 완료하면 테스트 시나리오를 작성하고 사용자 지정 단계를 정의하기 위해 기능과 FeatureContext를 추가해야합니다.

behat + mink + selenium + symfony here을 사용하여 심포니 설치시 세부 구성을 추가했습니다. 그것이 효과가 있는지 확인하십시오.