Как общаться между контекстами в Beat 3?

Я больше не могу использовать getMainContext () и getSubcontext ($ alias) в версии 3. Как взаимодействовать с контекстом в версии 3. Являются ли особенности контекста единственным способом?

 # behat.yml
default:
suites:
guest_features:
paths:    [ %paths.base%/features/web ]
filters:  { role: guest }
contexts: [ GuestContext ]

user_features:
paths:    [ %paths.base%/features/web ]
filters:  { role: member }
contexts: [ MemberContext ]

groupled_features:
paths:    [ %paths.base%/features/web ]
filters:  { role: grouplead}
contexts: [ GroupleadContext ]

admin_features:
paths:    [ %paths.base%/features/web ]
filters:  { role: admin }
contexts: [ AdminContext ]

extensions:
Behat\MinkExtension:
base_url: http://ollo.com
browser_name: firefox
selenium2:
capabilities: { "browser": "firefox", "version": "24"}
goutte: ~

5

Решение

Ты можешь использовать сценарий хуки, как объяснено в «Доступ к контекстам друг от друга» страница документации:

use Behat\Behat\Context\Context;
use Behat\Behat\Hook\Scope\BeforeScenarioScope;

class MemberContext implements Context
{
/** @var GuestContext */
private $guestContext;/** @BeforeScenario */
public function before(BeforeScenarioScope $scope)
{
// Get the environment
$environment = $scope->getEnvironment();
// $environment is an instance of
//        Behat\Behat\Context\Environment\InitializedContextEnvironment// Get all the contexts you need in this context
$this->guestContest = $environment->getContext('GuestContext');
// $this->guestContest is the instance of GuestContext
}
}
13

Другие решения

Других решений пока нет …