gpt4 book ai didi

php - 使用 Behat 在 PHP 中找不到类 'Behat\Behat\Context\BehatContext'

转载 作者:可可西里 更新时间:2023-11-01 12:45:28 25 4
gpt4 key购买 nike

我正在尝试使用 tutorial on the website 学习 Behat .

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

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

应用更改的教程代码:

# 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);
}
}

完整的错误日志:

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

谁能帮我解决这个问题?

最佳答案

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

行为 3

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

use Behat\Behat\Context\Context;

class FeatureContext implements Context
{
// ...
}

composer.json 中:

{
"require-dev": {
"behat/behat": "~3.1"
},
"config": {
"bin-dir": "bin/"
}
}

行为 2

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

use Behat\Behat\Context\BehatContext;

class FeatureContext extends BehatContext
{
// ...
}

composer.json 中:

{
"require-dev": {
"behat/behat": "~2.5"
},
"config": {
"bin-dir": "bin/"
}
}

关于php - 使用 Behat 在 PHP 中找不到类 'Behat\Behat\Context\BehatContext',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com