在PhpStorm中运行PHPUnit测试会添加“--teamcity”选项,从而导致错误

时间:2016-09-20 17:05:20

标签: phpunit teamcity phpstorm

我有最新的PhpStorm(2016.2)和PHPUnit phar(5.5.4)。出于某种原因,当我在PhpStorm的项目中运行PHPUnit测试时,它会在--teamcity上添加运行命令,导致失败:

Testing started at 12:52 PM ...
Unit test suite invoked with a path to a non-unit test: --teamcity
Process finished with exit code 1

我不知道这个--teamcity选项来自何处,无论我运行什么测试,甚至从空白配置开始,它都会发生。我也没有安装TeamCity插件,我甚至没有使用TeamCity。

以下是完整命令显示的内容:

/usr/local/Cellar/php70/7.0.9/bin/php /Users/name/bin/phpunit-5.5.4.phar --configuration /path/to/config/my-phpunit.xml ClassNameTest /Users/name/PhpstormProjects/path/to/tests/unit/app/ClassNameTest.php --teamcity

(换出敏感信息)

我想要做的就是摆脱这个--teamcity选项,如果我在没有该选项的单独终端窗口中运行,一切正常。这最近才开始发生,也许是在PhpStorm更新之后。

4 个答案:

答案 0 :(得分:19)

我花了半天时间挣扎着。基本问题是在PHPUnit版本之间切换(6.x.x - > 4.x.x)。 (通过转换分支发生在我身上)

单击PHPUnit首选项中的刷新按钮可以修复它。

Languages & Frameworks > PHP > PHPUnit

确保它认为您所拥有的PHPUnit版本与它报告的版本匹配。

screenshot

答案 1 :(得分:19)

<强> TL;博士

我只能通过从我的系统(Linux)中删除系统安装的phpunit实例来解决这个问题:

sudo apt remove phpunit-*

<强>详情

即使PhpStorm中的设置是使用composer autoloader: phpunit library should use composer

出于某种原因最终使用/usr/share/php/PHPUnit/Util/Log/TeamCity.php的TeamCity: enter image description here

Project的本地PHPUnit为6.2,而系统默认为5.1 - &gt;他们是不相容的。

答案 2 :(得分:0)

问题是项目的内部问题。 PHPUnit不包含该错误消息。遗憾!

答案 3 :(得分:0)

PHPStorm使用此--teamcity选项输出测试结果。

您遇到的问题是由PHP7和旧版本的PHPUnit引起的问题。

删除您的PHPUnit 5并使用composer安装最新的(当前为6.2)并使用PHPUnit命名空间。

有关此错误的更多信息:https://github.com/sebastianbergmann/phpunit/issues/2460