Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phpspec全局编写器安装不工作_Php_Macos_Testing_Macos Catalina_Phpspec - Fatal编程技术网

Phpspec全局编写器安装不工作

Phpspec全局编写器安装不工作,php,macos,testing,macos-catalina,phpspec,Php,Macos,Testing,Macos Catalina,Phpspec,我已经通过codebase root中的composer安装了phpspec,方法是执行composer require phpspec/phpspec。我想在每次运行它时不使用vendor/bin作为前缀,但我也不想将其添加到PATH,因此我首先使用composer global require phpspec/phpspec全局安装了它(两个版本都相同),然后使用export PATH=$PATH:~/.composer/vendor/bin(我在MacOS Catalina上) 现在我可以

我已经通过codebase root中的composer安装了phpspec,方法是执行
composer require phpspec/phpspec
。我想在每次运行它时不使用
vendor/bin
作为前缀,但我也不想将其添加到
PATH
,因此我首先使用
composer global require phpspec/phpspec
全局安装了它(两个版本都相同),然后使用
export PATH=$PATH:~/.composer/vendor/bin
(我在MacOS Catalina上)

现在我可以从代码库根运行
phpspec
,它确实运行了。我可以运行
phpspec description xxx
,它确实创建了一个文件并工作,但是运行
phpspec
失败得很惨:

✘ Fatal error happened while executing the following

    Uncaught TypeError: Argument 2 passed to Symfony\Component\EventDispatcher\EventDispatcher::dispatch() must be an instance of Symfony\Component\EventDispatcher\Event or null, string given, called in /Users/.../.composer/vendor/phpspec/phpspec/src/PhpSpec/Util/DispatchTrait.php on line 22 and defined in /Users/.../.composer/vendor/symfony/event-dispatcher/EventDispatcher.php:37
Stack trace:
#0 /Users/.../.composer/vendor/phpspec/phpspec/src/PhpSpec/Util/DispatchTrait.php(22): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(PhpSpec\Event\SuiteEvent), 'beforeSuite')
#1 /Users/.../.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/SuiteRunner.php(52): PhpSpec\Runner\SuiteRunner->dispatch(Object(Symfony\Component\EventDispatcher\EventDispatcher), Object(PhpSpec\Event\SuiteEvent), 'beforeSuite')
#2 /Users/.../.composer/vendor/phpspec/phpspec/src/PhpSpec/Console/Command/RunCommand.php(178): PhpSpec\Runner\SuiteRunner->run(Object(PhpSpec\Loader\Suite))
#3 /Users/.../.composer/ven in /Users/.../.composer/vendor/symfony/event-dispatcher/EventDispatcher.php on line 37
但是,运行
vendor/bin/phpspec run
可以正常运行


这里可能有什么错误?

是什么让你认为
phpspec
vendor/bin/phpspec
指向同一个实例?此外,还有一个bug报告,其中匹配给定的错误。我从来没有说过它们指向同一个实例。显然,这是两个独立的依赖项(但版本相同).我很困惑,为什么相同的代码在不同的位置会表现出不同的行为。也许,供应商版本从应用程序的其余部分引入了更多的内容,以至于即使是完全相同版本的phpspec也会使用不同的软件包?我的“应用程序”实际上是一个具有phpspec依赖关系的编写器文件。即使考虑到这一点,
description
选项在这两种情况下都能工作还是很奇怪的,因为是什么让你认为
phpspec
vendor/bin/phpspec
指向同一个实例?此外,还有一个bug报告与给定的错误相匹配,我从来没有说过ey指向同一个实例。很明显,这是两个独立的依赖项(但版本是相同的)。我不明白为什么相同的代码在不同的位置表现出不同的行为。也许,供应商版本从应用程序的其余部分引入了更多的内容,因此即使是完全相同版本的phpspec也会使用不同的依赖包?我的“app”实际上是一个具有phpspec依赖关系的composer文件。即使考虑到这一点,
descripe
选项在这两种情况下都能工作,这还是很奇怪的