Php Can';无法从自定义上下文中识别步骤

Php Can';无法从自定义上下文中识别步骤,php,behat,Php,Behat,我已经设置了第一个Behat项目,但在定义除FeatureContext之外的上下文时遇到了问题。它会被创建(我用die in__构造检查),但不会调用这些步骤 这里是我的文件夹结构: |-root |-bin |-features |-FeatureContext.php |-PageLoaderContext.php |-page_loading.feature mypackage.json { "require": { "behat/behat

我已经设置了第一个Behat项目,但在定义除FeatureContext之外的上下文时遇到了问题。它会被创建(我用die in__构造检查),但不会调用这些步骤

这里是我的文件夹结构:

|-root
  |-bin
  |-features
    |-FeatureContext.php
    |-PageLoaderContext.php
    |-page_loading.feature
mypackage.json

{
  "require": {
    "behat/behat":           "3.0.5",
    "behat/mink-extension":  "*",
    "behat/mink-goutte-driver":     "*",
    "behat/mink-selenium2-driver":  "*",
    "behat/mink-zombie-driver":  "*",
    "symfony/http-kernel":  "*"
  },
  "minimum-stability": "dev",
  "config": {
    "bin-dir": "bin"
  } 
}
这是我的行为

default:            
  suites:
    default:
      contexts:
        - PageLoaderContext
还有我的容貌

Feature: Tutte le pagine del sito caricano senza errori
  Per poter usare il sito
  Come utente
  Ho bisogno che tutte le pagine carichino senza errori

  Scenario Outline: Controlla il caricamento senza errori di pagine significative
    Given I'm on "<url>"
    When La pagina finisce di caricare
    Then Dovrei ottenere uno status code HTTP pari a "<code>"
    And Il "<selector>" della pagina dovrebbe contenere "<value>"

    Examples:
        | url | code | selector   | value  |
        | ?   | 200  | head title | Spagro |
特写:卡里卡诺·塞尔扎·埃罗里教堂(Tutte le pagine del sito caricano senza errori)
每一天
来吧,中尉
卡里基诺·塞尔扎·埃罗里夫人
情景大纲:控制有意义的错误
考虑到我在“
当帕吉纳在卡里卡雷完成时
然后,Dovrei ottenere uno状态代码HTTP pari a“
”
和“della pagina Dovrebe contenere”
示例:
|url |代码|选择器|值|
| ?   | 200 |标题| Spagro|
PageLoaderContext.php

<?php

use Behat\Behat\Exception\PendingException;

class PageLoaderContext implements \Behat\Behat\Context\Context
{
  /**
   * @Given /^Carico la pagina "([^"]*)"$/
   */
  public function caricoLaPagina($arg1)
  {
    throw new PendingException();
  }

  /**
   * @When /^La pagina finisce di caricare$/
   */
  public function laPaginaFinisceDiCaricare()
  {
    throw new PendingException();
  }

  /**
   * @Then /^Dovrei ottenere uno status code HTTP pari a "([^"]*)"$/
   */
  public function dovreiOttenereUnoStatusCodeHttpPariA($arg1)
  {
    throw new PendingException();
  }

  /**
   * @Given /^Il "([^"]*)" della pagina dovrebbe contenere "([^"]*)"$/
   */
  public function ilDellaPaginaDovrebbeContenere($arg1, $arg2)
  {
    throw new PendingException();
  }
}

尝试将您的
行为.yml
更改为

default:            
  suites:
    pageLoaderSuite:
      paths:
        - %paths.base%/features
      contexts:
        - Path\To\Your\Context

但是,我可以看到您没有名称空间
PageLoaderContextClass

请尝试将
behat.yml
更改为

default:            
  suites:
    pageLoaderSuite:
      paths:
        - %paths.base%/features
      contexts:
        - Path\To\Your\Context

但是,我可以看到您没有名称空间
PageLoaderContextClass

我尝试使套件正常工作,但Behat似乎忽略了它们。因此,我必须在套房上使用配置文件,而且效果很好

*behat.yaml*
page_loading:
  paths:
    features:  features\bootstrap\page_loading
    bootstrap: %behat.paths.features%
  context:
    class: PageLoaderContext

现在,对于每个功能,我在引导中创建了一个包含.feature文件和上下文类的文件夹。

我尝试使套件正常工作,但Behat似乎忽略了它们。因此,我必须在套房上使用配置文件,而且效果很好

*behat.yaml*
page_loading:
  paths:
    features:  features\bootstrap\page_loading
    bootstrap: %behat.paths.features%
  context:
    class: PageLoaderContext
现在,对于每个功能,我在引导中创建一个文件夹,其中包含.feature文件和上下文类。

请参见:请参见: