首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类' Behat \Behat\Context\BehatContext‘在PHP和Behat中找不到

类' Behat \Behat\Context\BehatContext‘在PHP和Behat中找不到
EN

Stack Overflow用户
提问于 2014-03-14 11:04:38
回答 2查看 4.8K关注 0票数 8

我正在尝试使用网站教程来学习Behat。

第一步进行顺利,没有出现错误。

但是,当我更改ls_project/features/bootstrap/FeatureContext.php时,如教程第二步所示,我将得到以下错误:'Behat\Behat\Context\BehatContext' not found

应用更改的教程代码:

代码语言:javascript
复制
# features/bootstrap/FeatureContext.php
<?php

use Behat\Behat\Context\BehatContext,
    Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
    Behat\Gherkin\Node\TableNode;

class FeatureContext extends BehatContext
{
    /**
     * @Given /^I am in a directory "([^"]*)"$/
     */
    public function iAmInADirectory($dir)
    {
        if (!file_exists($dir)) {
            mkdir($dir);
        }
        chdir($dir);
    }
}

完整的错误日志:

代码语言:javascript
复制
11:51:33 / ME : /var/www/test-driven/behat/ls_project
$ behat
# features/bootstrap/FeatureContext.php
PHP Fatal error:  Class 'Behat\Behat\Context\BehatContext' not found in /var/www/test-driven/behat/ls_project/features/bootstrap/FeatureContext.php on line 10
PHP Stack trace:
PHP   1. {main}() /opt/Behat/bin/behat:0
PHP   2. Symfony\Component\Console\Application->run() /opt/Behat/bin/behat:31
PHP   3. Behat\Testwork\Cli\Application->doRun() /opt/Behat/vendor/symfony/console/Symfony/Component/Console/Application.php:121
PHP   4. Symfony\Component\Console\Application->doRun() /opt/Behat/src/Behat/Testwork/Cli/Application.php:90
PHP   5. Symfony\Component\Console\Application->doRunCommand() /opt/Behat/vendor/symfony/console/Symfony/Component/Console/Application.php:191
PHP   6. Symfony\Component\Console\Command\Command->run() /opt/Behat/vendor/symfony/console/Symfony/Component/Console/Application.php:892
PHP   7. Behat\Testwork\Cli\Command->execute() /opt/Behat/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:241
PHP   8. Behat\Testwork\Tester\Cli\ExerciseController->execute() /opt/Behat/src/Behat/Testwork/Cli/Command.php:63
PHP   9. Behat\Testwork\Tester\Cli\ExerciseController->testSpecifications() /opt/Behat/src/Behat/Testwork/Tester/Cli/ExerciseController.php:106
PHP  10. Behat\Testwork\EventDispatcher\Tester\EventDispatchingExercise->test() /opt/Behat/src/Behat/Testwork/Tester/Cli/ExerciseController.php:137
PHP  11. Behat\Testwork\Tester\Runtime\RuntimeExercise->test() /opt/Behat/src/Behat/Testwork/EventDispatcher/Tester/EventDispatchingExercise.php:65
PHP  12. Behat\Testwork\Environment\EnvironmentManager->buildEnvironment() /opt/Behat/src/Behat/Testwork/Tester/Runtime/RuntimeExercise.php:67
PHP  13. Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler->buildEnvironment() /opt/Behat/src/Behat/Testwork/Environment/EnvironmentManager.php:69
PHP  14. Behat\Behat\Context\Environment\UninitializedContextEnvironment->registerContextClass() /opt/Behat/src/Behat/Behat/Context/Environment/Handler/ContextEnvironmentHandler.php:75

有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-18 12:39:59

您似乎已经安装了Behat v3,但您正在跟踪Behat 2文档。

Behat 3

Behat 3没有Behat\Behat\Context\BehatContext类。它有一个Behat\Behat\Context\Context接口:

代码语言:javascript
复制
use Behat\Behat\Context\Context;

class FeatureContext implements Context
{
    // ...
}

composer.json

代码语言:javascript
复制
{
    "require-dev": {
        "behat/behat": "~3.1"
    },
    "config": {
        "bin-dir": "bin/"
    }
}

Behat 2

Behat 2使用Behat\Behat\Context\BehatContext基类:

代码语言:javascript
复制
use Behat\Behat\Context\BehatContext;

class FeatureContext extends BehatContext
{
    // ...
}

composer.json

代码语言:javascript
复制
{
    "require-dev": {
        "behat/behat": "~2.5"
    },
    "config": {
        "bin-dir": "bin/"
    }
}
票数 10
EN

Stack Overflow用户

发布于 2014-10-03 13:50:49

在behat 3中有不同的结构,因此您需要使用behat上下文的新路径,即Behat/Behat/ context /Context中的新路径。

代码语言:javascript
复制
<?php

use Behat\Behat\Context\Context;
use Behat\MinkExtension\Context\RawMinkContext;
use Behat\Behat\Context\CustomSnippetAcceptingContext;
use Behat\Behat\Tester\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;

class FeatureContext extends RawMinkContext implements Context {
}

所以使用这个例子:-)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22403250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档