2014-12-18 2 views
0

Я пытаюсь настроить Behat, но у меня есть некоторые ошибки. Вот конфигурация:Настроить поведение с помощью Symfony2

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

Импорт в config.yml. И когда я пытаюсь запустить ясно: кэш или BIN/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. Behat + норка + Селен

КОМПОЗИТОРА:

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:

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 

SELENIUM

Скачать в свой проект. Это here, Убедитесь, что вы загрузили версию 2.43.1, которая находится в середине страницы.

Выполнить это: java -jar selenium-server-standalone-2.43.1.jar

КОНТЕКСТ ВОЗМОЖНОСТЬ

mySymfonyProject/ЦСИ/сайта/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 
} 

ИСПЫТАНИЯ

Когда у вас есть файлы функций, вы можете запускать их так (это выполняется за один раз. для получения дополнительной информации прочитайте файл behat doc):

bin/behat @SiteCommonBundle 
2

Вам не нужно импортировать behat.yml в ваш config.yml.

Behat работает независимо от Symfony. И эти конфиги не могут быть запутаны. В документации по ссылке, которую вы предоставляете, вы можете обнаружить, что behat.yml должен быть расположен в корневой папке проекта.

+0

Упс. Это очень похоже на правильный ответ. Я не заметил, что @Panzer_Commander импортировал YML. – kix

+0

ОК, я исключаю импорт behate, eml в config. Но теперь, когда я запускаю bin/behat, я получаю этот контекстный класс с ошибкой ''FeatureContext', который не найден и не может быть использован.' – nowiko

+0

Вы поместили свой 'FeatureContext.php' в' PROJECT_ROOT/features/Context'? –

Смежные вопросы