php - Behat 3.0 功能文件夹/路径

标签 php laravel behat

我正在尝试设置 Behat 3.0。我想改变我的特征去向的路径。

目前,我的 behat.yml 配置如下所示:

default:
    autoload:
        '': app/tests/acceptance

运行 behat --init 将在 app/tests 目录中创建 acceptance/FeatureContext.php

但是,它会在我的项目的根目录中创建 features 文件夹。相反,我希望将此 features 文件夹放在 app/tests/acceptance 文件夹中。

我该怎么做?

最佳答案

Behat 3 支持 suitesprofiles .

您唯一需要做的就是将自定义路径添加到默认配置文件:

default:
  autoload:
    '': %paths.base%/app/tests/acceptance
  suites:
    default:
      paths: [ %paths.base%/app/tests/acceptance/features ]

技巧1

始终使用 %paths.base% 变量以便能够从不同的目录运行您的 Behat 测试。

技巧2

当您实现更多上下文时,依赖于 Behat 的 PSR-0 自动加载机制可能会出现问题。

好的做法是使用 Composer 的 PSR-4 自动加载机制来运行命名空间的 Behat 功能。

按照上面的示例设置 Behat 后,您需要删除 bahat.yml 中的自动加载部分,并将 contexts 添加到 default 配置文件中:

default:
  suites:
    default:
      paths: [ %paths.base%/app/tests/acceptance/features ]
      contexts: [ MyApp\Tests\Acceptance\FeatureContext ]

将自动加载配置添加到composer.json:

{
    [...]
    "autoload-dev": {
        "psr-4": {
            "MyApp\\Tests\\Acceptance\\": "app/tests/acceptance"
        }
    }
    [...]
}

然后使用 composer dump-autoload 简单地转储自动加载器。

关于php - Behat 3.0 功能文件夹/路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27905633/

相关文章:

PHP DomDocument 输出没有 <?xml 版本 ="1.0"编码 ="UTF-8"?>

php - CodeIgniter:在登录系统中输入正确的用户名和密码时,Google Chrome 中出现空白页面(Mozilla Firefox 中没有任何事件)

Laravel 与 socket.io 的回声

composer-php - Composer : Cannot install behat and mink in laravel 5. 2 新项目

php - 排名/人气系统

php - 为什么 smarty greater than function 不起作用?

Laravel 4.2 检查 whereIn 子句中的数组是否为空

MySQL错误未知排序规则

selenium - Behat 我按 "Button"不工作

laravel - 如何从 Behat 测试内部运行 shell 命令?