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

Laravel 如何从Behat测试内部运行shell命令?,laravel,behat,laravel-artisan,Laravel,Behat,Laravel Artisan,我正在开发laravel 5应用程序,我需要创建artisan命令。我使用Behat作为我的测试框架。我知道我可以在behat中测试数据库的状态。我想运行一个命令,比如“ php artisan:my命令 从behat步骤内部。我如何完成此操作 感谢在您的FeatureContext课程中: /** * @When I run :command */ public function iRun($command) { $this->output = shell_exec($com

我正在开发laravel 5应用程序,我需要创建artisan命令。我使用Behat作为我的测试框架。我知道我可以在behat中测试数据库的状态。我想运行一个命令,比如“

php artisan:my命令

从behat步骤内部。我如何完成此操作


感谢在您的
FeatureContext
课程中:

/**
 * @When I run :command
 */
public function iRun($command)
{
    $this->output = shell_exec($command);
}
如果您使用的是Symfony控制台组件,请查看


您甚至可以像on这样描述您的命令。

我找到了一种简单的方法来实现这一点。因为我正在运行artisan命令,所以我可以使用artisan facade

/**
     * @Given I run the artisan command :command with args :args
     * @param $command
     * @param $args
     */
    public function iRunTheArtisanCommandWithArgs($command, $args)
    {
        \Artisan::call($command, [$args]);
    }

您也可以在behat的文档中找到这一点。