我有最新的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更新之后。
答案 0 :(得分:19)
我花了半天时间挣扎着。基本问题是在PHPUnit版本之间切换(6.x.x
- > 4.x.x
)。 (通过转换分支发生在我身上)
单击PHPUnit首选项中的刷新按钮可以修复它。
(Languages & Frameworks > PHP > PHPUnit
)
确保它认为您所拥有的PHPUnit版本与它报告的版本匹配。
答案 1 :(得分:19)
<强> TL;博士强>
我只能通过从我的系统(Linux)中删除系统安装的phpunit实例来解决这个问题:
sudo apt remove phpunit-*
<强>详情
即使PhpStorm中的设置是使用composer autoloader:
出于某种原因最终使用/usr/share/php/PHPUnit/Util/Log/TeamCity.php
的TeamCity:
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