Reputation: 1604
I am using PhpStorm and for some PHPUnit tests I can right click in the file menu on the left hand side and run some tests and it works.
In the console it shows
/usr/bin/php -dxdebug.coverage_enable=1 /srv/live/vendor/phpunit/phpunit/phpunit --coverage-clover /home/me/.PhpStorm2017.3/system/coverage/live$StringTest.coverage --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
However, for other tests in another bundle when I right click and run it, the command is
/usr/bin/php /srv/live/src/tests/src/OtherBundle/Classes/Validator/StringLengthTest.php
and the test can't run. I get a class not found error, which I attribute to the command not having the extra arguments as that in the first version above. The other thing I noticed was that the 'Run test with coverage' was only available for the first test, when right clicking in the menu.
Where does this difference originate?
My phpunit.xml
file is
<?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>
In File -> Settings -> Languages & Frameworks -> PHP -> Test Frameworks
it is
Do you have any ideas on why I can run one test ok but not the other - I mean why the difference in the arguments (e.g. -dxdebug.coverage_enable=1
)?
The php.ini
file hasn't changed.
Upvotes: 1
Views: 681
Reputation: 1604
I found a solution (not sure if it's the best).
If I click Run -> Edit Configurations
Then click the plus sign and add a new PHPUnit configuration, I can choose the bundle where the tests were not working.
Now phpunit runs with the extra arguments when I right click in the file menu.
The thing is, I never did this for the test that was working, so although I found a way to get the failing test to work, I am not totally clear on why I saw the difference in the first place.
Thanks HunterFrazier for putting the wheels in motion.
Upvotes: 1