我已经设置了我的第一个Behat项目,但是我在定义除FeatureContext之外的上下文时遇到了麻烦。它被创建(我在__construct中使用模具进行检查),但步骤不会被调用。
这是我的文件夹结构:
|-root
|-bin
|-features
|-FeatureContext.php
|-PageLoaderContext.php
|-page_loading.feature
我的package.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"
}
}
这是我的behat.yaml
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 |
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();
}
}
就像我说的,如果我实现FeatureContext中的步骤,一切都很好,但这不会起作用。
答案 0 :(得分:0)
尝试将behat.yml
更改为
default:
suites:
pageLoaderSuite:
paths:
- %paths.base%/features
contexts:
- Path\To\Your\Context
但是我可以看到你没有命名空间PageLoaderContextClass
答案 1 :(得分:0)
我尝试让套件工作,但Behat似乎忽略了它们。所以我不得不在套件上使用配置文件并且它有效。
*behat.yaml*
page_loading:
paths:
features: features\bootstrap\page_loading
bootstrap: %behat.paths.features%
context:
class: PageLoaderContext
现在,对于每个功能,我使用.feature文件和上下文类在bootstrap中创建一个文件夹。