php-如何配置Behat从应用程序特定文件夹自动加载类

我正在尝试安装&在我现有的小型项目上配置Behat.我了解将* .feature文件放入features文件夹的概念,并且还可以将我的实际* Context.php文件放入features / bootstrap文件夹.当我查看文档中提到实际功能实现的部分时,它暗示Behat默认情况下期望您将应用程序特定的类放到同一文件夹中:

We put the Shelf class into features/bootstrap/Shelf.php because
features/bootstrap is an autoloading folder for Behat. Behat has a
built-in PSR-0 autoloader, which looks into features/bootstrap. If
you’re developing your own application, you probably would want to put
classes into a place appropriate for your app.

但是,在文档的任何地方都没有提到我将如何配置Behat以便能够识别实际app文件夹中的类.

这是我的项目目录结构:

/
-/app
--/classes --where my apps classes actually live
-/features --behat generated folder
--/bootstrap --behat generated folder
-/public
-/system
-/vendor -- composer included libraries

我的项目使用自己的自动装带器在app / classes文件夹中搜索的类,并且类名使用下划线,其中路径分隔符位于目录分隔符中.例如可在app / classes / controller / app.php中找到Controller_App类

如何配置Behat,使其不希望在features / bootstrap文件夹中找到我的应用程序类?

解决方法:

解决方案是将以下内容添加到composer.json中:

"autoload": {
        "psr-0": {"":"app/classes"}
}

然后运行composer dump-autoload

然后就可以了!

上一篇:c#-关于改进BDD / TDD样式的任何建议吗?


下一篇:php-Lravel 5,Behat,貂皮:未从behat.yml中读取base_url参数