2015-03-12 3 views
2

Behat Api тесты, кажется, попадают в среду разработчиков (создается папка с кэшем dev, и она использует базу данных dev).Behat 3 с Symfony2, тесты api с использованием среды dev

Он создает тестовую базу данных без проблем и добавляет данные (метод BeforeScenario в FeatureContext).

Мой набор вверх выглядит следующим образом:

Уже app_test.php фронт-контроллер.

default: 
    formatters: 
     pretty: true 
    autoload: 
     '': %paths.base%/app/features/bootstrap 
    suites: 
     app_suite: 
      type: symfony_bundle 
      bundle: AppBundle 
      contexts: 
       - AppBundle\Features\Context\FeatureContext: 
        parameters: 
         base_url: http://mysite.dev 
      mink_session: default 
      mink_javascript_session: selenium2 
    extensions: 
     Behat\Symfony2Extension: ~ 
     Behat\MinkExtension: 
      sessions: 
       default: 
        symfony2: ~ 

Это: http://www.forouzani.com/installing-behat-mink-and-selenium2-in-symfony2.html, возможно, работал ранее с behat 2, но я использую behat 3 сейчас так кажется, не работает, как ожидалось!

Благодаря

+0

изменить «Dev», чтобы ли «? Тест» в вашем app_test.php Есть ли у вас какие-либо тесты селена Похоже, они настроены, чтобы пройти через контроллер переднего по умолчанию (»HTTP: // MySite. dev "используется вместо" http://mysite.dev/app_test.php "- если только app_test.php не является фронт-контроллером по умолчанию для этого домена). –

+0

да, это было изменено для тестирования в app_test. ссылка i добавлена было это: расширения: Behat \ Symfony2Extension \ Extension: mink_driver: истинно ядро: окр: тест отладки:. правда , не похоже на работу для me – timhc22

+0

Я попытался иметь /app_test.php в base_url, но, похоже, не работал :( – timhc22

ответ

6

Если вы все еще не можете сделать после выполнения шагов ниже, я постараюсь дать вам шаг за шагом, например, когда у меня есть время.

Update composer.json

"require": { 
    "php": ">=5.4", 
    "behat/behat": "3.0.14", 
    "behat/behat-bundle": "1.0.0", 
    "behat/symfony2-extension": "2.0.0", 
    "behat/mink": "1.6.0", 
    "behat/mink-extension": "2.0.1", 
    "behat/mink-browserkit-driver": "1.2.0", 
    "behat/mink-goutte-driver": "1.1.0", 
    "behat/mink-selenium2-driver": "1.2.0" 
}, 

Run композитор

php composer.phar update 

Создать файл behat.yml.

default: 
    extensions: 
     Behat\Symfony2Extension: ~ 
     Behat\MinkExtension: 
      base_url: http://behat-three.local/app_test.php 
      browser_name: firefox 
      sessions: 
       goutte: # fast, CLI, browser, no javascript support 
        goutte: ~ 
       selenium2: # fast, CLI, opens up a browser 
        selenium2: ~ 
       symfony2: # bleeding fast, CLI, no browser 
        symfony2: ~ 
    suites: 
     test_suite: 
      type: symfony_bundle 
      bundle: SiteMainBundle 
      mink_session: selenium2 
      contexts: 
       - Site\MainBundle\Features\Context\FeatureContext: 
        output_path: build/behat/output 
        screen_shot_path: build/behat/screenshot 

Инициировать, чтобы создавать соответствующие файлы и фолдеры для работы.

php bin/behat --init --suite=test_suite 

Затем убедитесь, что у вас есть app_test.php и обновить AppKernel линию.

# your_project/web/app_test.php 

$kernel = new AppKernel('test', true); 

Затем создайте config_test.yml со своими собственными настройками, что-то подобное.

# your_project/app/config/config_test.yml 

imports: 
    - { resource: config_dev.yml } 

framework: 
    test: ~ 
    session: 
     storage_id: session.storage.mock_file 
    profiler: 
     collect: false 

web_profiler: 
    toolbar: false 
    intercept_redirects: false 

swiftmailer: 
    disable_delivery: true 

doctrine: 
    dbal: 
     connections: 
     hello: 
      driver: pdo_sqlite 
      path:  %kernel.cache_dir%/test_hello.db 
Смежные вопросы