`BeforeFeatureScope`

时间:2019-07-12 13:00:55

标签: behat

我有一个behat项目,其中包含许多套件,功能和方案。在一个特定的套件中,我需要创建一个BeforeFeature钩子,因为我需要在某个特定功能的所有方案之前执行一次操作,而不是像BeforeScenario钩子那样在每个方案之前执行一次操作。 由于我有很多上下文,因此我需要在BeforeFeature函数上互相访问上下文。但是,似乎只能在BeforeScenario钩上实现。

Here是有关如何相互访问上下文的参考

这是有效的代码:

/** @BeforeScenario */
    public function gatherContexts(BeforeScenarioScope $scope)
    {
        $environment = $scope->getEnvironment();

        $this->minkContext = $environment->getContext('Behat\MinkExtension\Context\MinkContext');
    }

这是无效的代码:

/** @BeforeFeature */
    public function gatherContexts(BeforeFeatureScope $scope)
    {
        $environment = $scope->getEnvironment();

        $this->minkContext = $environment->getContext('Behat\MinkExtension\Context\MinkContext');
    }

我希望BeforeFeature的代码能够正常工作(就像BeforeScenario的代码一样),但我却收到此错误:

┌─ @BeforeFeature # FeatureContext::gatherContexts()
│
╳  Fatal error: Call to undefined method Behat\Behat\Context\Environment\UninitializedContextEnvironment::getContext() (Behat\Testwork\Call\Exception\FatalThrowableError)

0 个答案:

没有答案