我过去曾经尝试过Behat 2.5,但没有问题进行设置,但是现在我刚刚下载了Behat 3,尝试设置它时遇到了一些困难。

我的问题是,在全新安装后,如果我创建了一个 behat.yml 文件,我似乎无法定义 FeatureContext 文件的位置,也无法运行任何测试。

我的 composer.json 如下所示:

{
"require-dev": {
    "behat/behat": "~3.0.4",
    "sensiolabs/behat-page-object-extension": "2.0.*@dev"
},
"require": {
    "behat/mink": "1.6.*",
"behat/mink-goutte-driver": "*",
    "behat/mink-selenium2-driver": "*"
}

}

我的项目文件夹的结构如下:
behat/
  bootstrap/
    FeatureContext.php
  config/
    behat.yml
  features/
    CheckHome.feature
  vendor/
  composer.json
  composer.lock

还有我的 behat.yml 文件:
default:
  autoload:
    '': %paths.base%/../bootstrap
  suites:
    default:
      paths:
        - %paths.base%/../features
      contexts:
        - FeatureContext

当我尝试使用 CheckHome.feature 运行场景时
vendor/bin/behat

我收到以下错误:
Behat\Behat\Context\Exception\ContextNotFoundException]
`FeatureContext` context class not found and can not be used.

设置自动加载以便识别我的上下文的正确方法是什么?

谢谢

最佳答案

我修好了它。我假设基本路径是我目录的根目录,但它是存储 behat.yml 的地方。因此,为了使用我当前的配置,我必须按如下方式更改 behat.yml 文件中的路径:

default:
  autoload:
    '': %paths.base%/../bootstrap
  suites:
    default:
      paths:
        - %paths.base%/../features
    contexts:
        - FeatureContext

关于php - Behat 3 - `FeatureContext` 上下文类未找到且无法使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26658511/

10-15 18:55