首页 > 解决方案 > FeatureContext 文件中未定义步骤。我已经定义了步骤。不确定是否正在调用 featurecontext 文件

问题描述

这是我的 behat.yml 文件。我尝试了变体以链接 FeatureContext 文件。有人可以通过检查这是否是在 behat.yml 文件中链接功能上下文文件的正确方法来帮助我。如果需要 featurecontext 文件的路径,这是路径%path.base%/features/bootstrap

default:
  suites:
    default:
      path: %paths.base%/features
      contexts: 
             - Behat\MinkExtension\Context\MinkContext
             - FeatureContext
  extensions:
    Behat\MinkExtension:
      base_url: http://echidnaacerdev.prod.acquia-sites.com/
      sessions:
        default:
          goutte: ~

这是我的 FeatureContext.php 文件

<?php

use Behat\Behat\Context\Context;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;
use Behat\MinkExtension\Context\MinkContext;

/**
 * Defines application features from the specific context.
 */
class FeatureContext implements Context
{
    /**
     * Initializes context.
     *
     * Every scenario gets its own context instance.
     * You can also pass arbitrary arguments to the
     * context constructor through behat.yml.
     */
    public function __construct()
    {

    }

    /**
    * Click some text
    *
    * @When /^I click on the text :text$/
    */
    public function iClickOnTheText($text)
    {
        $session = $this->getSession();
        $element = $session->getPage()->find('xpath',$session->getSelectorsHandler()->selectorToXpath('xpath', '*//*[text()="'. $text .'"]'));
        if (null === $element) {
            throw new InvalidArgumentException(sprintf('Cannot find text: "%s"', $text));
        }

        $element->click();

    }
}

我不确定如何在我的 behat.yml 中定义功能上下文文件。谁能帮我解决这个问题。我得到的错误信息是 behat\minkextension\context\minkcontext has missing steps. define them with the snippets 对于特定步骤When I click on the text "Members"

标签: drupalbehatmink

解决方案


您没有正确使用该步骤,您应该使用When I click on the text Members,记住匹配是通过正则表达式完成的,sintax 应该是 Gherkin 或 Turnip。

FeatureContext应该从 yml 扩展MinkContext Remove MinkContext,如果你像我说的那样扩展它,则不需要,你也可以删除该路径,默认情况下它正在查找features/bootstrap


推荐阅读