进程组件Symfony无法执行behat命令

时间:2016-10-01 17:29:43

标签: php laravel symfony process behat

我目前正在开发一个Laravel软件包,它将直接从我们的浏览器启动行为测试。这是一个个人项目。

我使用Process Component Symfony来执行各种命令。但是,它无法执行命令Behat并返回此错误:

vendor / bin / Behat"失败。 退出代码:255(未知错误)工作目录:/ Applications / MAMP / htdocs / Package / public 输出:================解析错误:解析错误,期待'&' 'or"变量(T_VARIABLE)' '位于/ Applications / MAMP / htdocs / Package / vendor /lavel / framework/src/Illuminate/Foundation/helpers.php第475行 错误输出:================

简而言之,他拒绝执行所有命令Behat。这里使用我的包的控制器中的命令。

<? Php

namespace Nkweb\BehatWeb\Http\Controllers;

use App\Http\Controllers\Controller;
use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Process;

class BehatWebController extends Controller
{
    
    public function launchBehat()
    {
        
        $command = base_path('vendor/bin/Behat');

        $process = new Process($command);
        try {
            $process->mustRun();
            $outputs = explode("\n", $process->getOutput());
        } Catch (ProcessFailedException $e) {
            return $e->getMessage();
        }

        return view('behatweb::content.init', ['outputs' => $outputs]);
    }
}

我搜索谷歌并以各种方式返回但我找不到任何相关信息。我真的需要你的帮助:(

1 个答案:

答案 0 :(得分:0)

我不是Laravel用户,但我会试一试。我将完成我的流程,希望它能帮助您在将来调试类似的问题。我假设您正在使用最新的Laravel,但如果您可以说明您正在运行哪个版本,那将会很有帮助。

看错误,我们有一个好的开始。 laravel / framework / src / Illuminate / Foundation / helpers.php中的第475行。以下是第一行:

function event(...$args)
{
    return app('events')->fire(...$args);
}

我们期待变量或&amp; (根据引用传递),因此我们可以假设它正在讨论事件函数中的参数。现在我们可以看到参数前面有...这对Google很难,但是搜索“splat”运算符可能会得到更好的结果(注意,不同的语言可能有其他名称)。

这是在PHP 5.6中引入的,这使我相信您正在运行不受支持的早期版本。我建议升级到PHP 5.6或更高版本,看看是否能解决您的问题。如果没有,请发布您正在使用的PHP版本。