为什么 PhpStorm 运行 只测试一些带有额外参数的测试(bootstrap,配置)?

Why is PhpStorm running tests for only some tests with extra arguments (bootstrap, configuration)?

我正在使用 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.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

但是,对于另一个包中的其他测试,当我右键单击并运行它时,命令是

/usr/bin/php /srv/live/src/tests/src/OtherBundle/Classes/Validator/StringLengthTest.php

而测试不能运行。我收到 class not found 错误,我将其归因于命令没有上面第一个版本中的额外参数。我注意到的另一件事是 'Run test with coverage' 仅在第一次测试时可用,当右键单击菜单时。

这种差异从何而来?

我的 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 文件未更改。

我找到了解决方案(不确定它是否是最好的)。

如果我点击 Run -> Edit Configurations

然后单击加号并添加新的 PHPUnit 配置,我可以选择测试不起作用的包。

现在,当我在文件菜单中右键单击时,phpunit 使用额外的参数运行。

问题是,我从来没有为有效的测试这样做过,所以虽然我找到了一种方法让失败的测试正常工作,但我并不完全清楚为什么我首先看到了差异。

感谢让车轮运转起来。