В качестве примера я последовал за this blog и прочитал ParallerRunner информации. Когда я вызываю команду bin/behat
, открывается одно окно браузера и успешно выполняется все тесты с приведенным ниже параметром.Выполнение тестов поведения параллельно (в двух окнах браузера)
Symfony/behat.yml
default:
context:
class: Site\CommonBundle\Features\Context\FeatureContext
extensions:
Behat\Symfony2Extension\Extension:
mink_driver: true
kernel:
env: test
debug: true
Behat\MinkExtension\Extension:
base_url: 'http://symfony.local/app_test.php/'
javascript_session: selenium2
browser_name: firefox
goutte: ~
selenium2: ~
paths:
features: %behat.paths.base%/src
bootstrap: %behat.paths.features%/Context
Я изменил behay.yml (как показано ниже), чтобы выполнить некоторые тесты в одном окне браузера, а некоторые в другом окне, однако не делает этого , Что он делает, он открывает два окна браузера, но они оба запускают те же тесты! Как я могу решить эту проблему?
Symfony/behat.yml
default:
context:
class: Site\CommonBundle\Features\Context\FeatureContext
parameters:
output_path: %behat.paths.base%/build/behat/output/
screen_shot_path: %behat.paths.base%/build/behat/screenshot/
extensions:
Behat\Symfony2Extension\Extension:
mink_driver: true
kernel:
env: test
debug: true
Behat\MinkExtension\Extension:
base_url: 'http://symfony.local/app_test.php/'
files_path: %behat.paths.base%/build/dummy/
javascript_session: selenium2
browser_name: firefox
goutte: ~
selenium2: ~
shvetsgroup\ParallelRunner\Extension:
process_count: 2
paths:
features: %behat.paths.base%/src
bootstrap: %behat.paths.features%/Context
F1:
filters:
tags: "@backend"
F2:
filters:
tags: "@frontend"
BEHAT ИСПЫТАНИЯ:
Это должно работать в одном окне:
@frontend
Feature: User Login
@javascript
Scenario: I can login to the system
Given I am on "/login"
And I login as "user"
Это должно работать в другом окне :
@backend
Feature: Admin Login
@javascript
Scenario: I can login to the system
Given I am on "/login"
And I login as "admin"
Я видел это вчера, но раньше я не разбирался в параллельных тестах. Я читал об этой теории, и для меня это кажется проблематичным, так как вам нужна настройка базы данных и сервера для каждого процесса - я не знаю, относится ли это к вашему делу, но это верно для большинства ситуаций. Это интересный вопрос, мне бы хотелось увидеть ответ на этот вопрос. –
@IanBytchek - не беспокойтесь. Я буду сидеть и ждать. Если это еще не возможно, то кто-то должен сделать это в ближайшем будущем, потому что нет смысла ждать, пока долгое время тестовый набор завершится, когда один или несколько тестов не зависят от другого. Похоже, ParallelRunner [не активно развивается] (https://github.com/shvetsgroup/ParallelRunner/issues/28) в любом случае. – BentCoder
Вы могли бы попробовать обновить до Behat 3 тем временем, может быть, это принесет некоторую удачу? :) Параллелизация - отличная вещь, Behat убивает мои нервы с временем, которое требуется для запуска тестов. Полностью разделить боль. –