我正在使用PhpStorm,对于一些PHPUnit测试,我可以右键单击左侧的文件菜单并运行一些测试,它可以工作。
在控制台中显示
/ usr / bin / php -dxdebug.coverage_enable = 1 / srv / live / vendor / phpunit / phpunit / phpunit --coverage-clover /home/me/.PhpStorm2017.3/system/coverage/live$StringTest。覆盖--bootstrap /srv/live/vendor/autoload.php --configuration /srv/live/phpunit.xml tests \ src \ CoreBundle \ Helper \ StringTest / srv / live / src / tests / src / CoreBundle / Helper / StringTest .php --teamcity
但是,当我右键单击并运行它时,对于另一个包中的其他测试,命令是
/ usr / bin / php /srv/live/src/tests/src/OtherBundle/Classes/Validator/StringLengthTest.php
并且测试无法运行。我得到一个类未找到错误,我将该属性归因于上面第一个版本中没有额外参数的命令。我注意到的另一件事是' Run测试覆盖范围'仅在菜单中右键单击时才可用于第一次测试。
这种差异源自哪里?
我的phpunit.xml
文件是
<?xml version="1.0"?>
<phpunit cacheTokens="true"
colors="true"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
verbose="true"
bootstrap="/srv/live/vendor/autoload.php">
<php>
<server name="KERNEL_DIR" value="app/" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>/srv/live/src/tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="false">
<directory suffix=".php">/srv/live/src/</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./web/phpunitLog/codeCoverage" charset="UTF-8"
yui="true" highlight="true"
lowUpperBound="50" highLowerBound="80"/>
<log type="testdox-html" target="./web/phpunitLog/testdox.html" />
</logging>
</phpunit>
在File -> Settings -> Languages & Frameworks -> PHP -> Test Frameworks
中
你对我为什么可以运行一个测试而不是另一个测试有任何想法 - 我的意思是为什么参数的差异(例如-dxdebug.coverage_enable=1
)?
php.ini
文件未更改。
答案 0 :(得分:1)
我找到了一个解决方案(不确定它是否最好)。
如果点击Run -> Edit Configurations
然后单击加号并添加新的PHPUnit配置,我可以选择测试不起作用的包。
现在,当我右键单击文件菜单时,phpunit会运行额外的参数。
问题是,我从来没有为正在进行的测试做到这一点,所以虽然我找到了让失败的测试工作的方法,但我并不完全清楚为什么我首先看到了差异。
感谢HunterFrazier让车轮动起来。