如何将库/ API包含到Composer添加的Behat项目中


How do I include a library / API into my Behat project that was added by Composer?

显然PHPUnit第4版现在使用Composer来自动加载,这意味着在Behat第2版中包含PHPUnit的通常方法:

require_once 'PHPUnit/Autoload.php';
require_once 'PHPUnit/Framework/Assert/Functions.php';

是行不通的。我希望/vendor/autoload.php在我的行为文件夹将包括它,但它似乎不是这样的。

我想我要问的是,我可以在我的代码中包含由Composer添加的库的一般方式是什么?

您可以成功地使用默认的/vendor/autoload.php来加载库和代码。如果没有进一步的细节,很难确切地说什么可能是错误的,但确保您的编写器依赖项更新,然后只需需要编写器的authoload.php。作曲家。Json应该类似于:

{
    "require": {
        "behat/behat": "dev-master",
        "behat/mink": "dev-master",
        "behat/mink-extension": "dev-master",
        "behat/mink-browserkit-driver": "dev-master",
        "behat/mink-goutte-driver": "dev-master",
        "behat/mink-selenium2-driver": "dev-master",
        "phpunit/dbunit": "*",
        "phpunit/phpunit": "*",
    },
    "autoload": {
        "psr-0": {
            "": "./src/"
        }
    }
}

你可以把它包含在你的上下文钩子中(这是Behat 3的例子):

/**
 * @beforeSuite
 */
public static function setUpSuite()
{
    require_once './vendor/autoload.php';
}