gpt4 book ai didi

composer-php - 如何使用 behat.yml 要求 vendor/autoload.php

转载 作者:行者123 更新时间:2023-12-01 23:46:35 25 4
gpt4 key购买 nike

在我的项目中,我有一个 autoload.php 文件,它负责要求 context 类。这是 Composer 自动生成的文件。如何使用 behat.yml 包含该文件?

在 PHPUnit 的 phpunit.xml.dist 中,我可以像这样使用 bootstrap 属性简单地做到这一点:

<phpunit bootstrap="vendor/autoload.php">

Behat中有类似的设置吗?

注意:我不是在询问从 vendor 目录运行 Behat,因为当我这样做时它会按预期工作。那是因为文件 vendor/bin/behat 包含了

include __DIR__.'/../vendor/autoload.php';

表达。但是我还全局安装了 behat,当我运行全局 behat 命令时,它无法自动加载我的上下文类。这是我感兴趣的用例。

最佳答案

默认使用 Composer 的自动加载器。

但是,根据您安装 Behat 的位置,将使用不同的自动加载器。如果您在项目中安装了 Behat,则使用项目的自动加载器,而如果您全局安装 Behat,则使用全局自动加载器。

没有办法仅通过配置来改变这种行为。请注意,这是预期的行为。参见 https://github.com/Behat/Behat/issues/490#issuecomment-40928786

此外,推荐在您的项目中安装 Behat。

即使使用了全局 behat 版本,您也可以编写一个 Behat 扩展来包含项目的自动加载器,但我认为这不值得。它还可能导致类的重复或错误版本等奇怪的自动加载问题。

最后,您还可以手动配置自动加载器:http://docs.behat.org/en/latest/guides/6.profiles.html#custom-autoloading

关于composer-php - 如何使用 behat.yml 要求 vendor/autoload.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28852162/

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