如何从Behat测试中运行shell命令?

时间:2015-05-05 20:17:49

标签: laravel behat artisan

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

这样的命令

php artisan my:command

从一个behat步骤。我怎么能做到这一点?

由于

2 个答案:

答案 0 :(得分:4)

FeatureContext课程内:

/**
 * @When I run :command
 */
public function iRun($command)
{
    $this->output = shell_exec($command);
}

如果您使用的是Symfony控制台组件,请查看https://gist.github.com/tPl0ch/6706427

您甚至可以在https://gist.github.com/everzet/1683634上描述您的命令。

答案 1 :(得分:0)

我找到了一种简单的方法。由于我正在运行一个工匠命令,我可以使用Artisan门面。

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