Phpunit 为什么PhpStorm只为一些带有额外参数(引导、配置)的测试运行测试?

Phpunit 为什么PhpStorm只为一些带有额外参数(引导、配置)的测试运行测试?,phpunit,phpstorm,xdebug,Phpunit,Phpstorm,Xdebug,我使用的是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/ven

我使用的是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/src/tests/src/CoreBundle/Helper\StringTest/src/test--团队城市

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

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

测试无法运行。我得到了一个类NotFound错误,我将其归因于命令没有像上面第一个版本那样的额外参数。我注意到的另一件事是,当右键单击菜单时,“运行覆盖率测试”仅适用于第一个测试

这种差异从何而来

我的
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>

/srv/现场/src/测试
/srv/live/src/
File->Settings->Languages&Frameworks->PHP->testframeworks

你对为什么我可以运行一个测试有什么想法吗?我的意思是为什么参数不同(例如
-dxdebug.coverage\u enable=1

php.ini文件没有更改。

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

如果我单击
Run->编辑配置

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

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

问题是,我从来没有在有效的测试中这样做过,所以尽管我找到了让失败的测试起作用的方法,但我并不完全清楚为什么我一开始就看到了这种差异


感谢您启动车轮。

我过去遇到过一些问题,就是没有选择正确的跑步配置。假设您从一个包移动到另一个包,它们有不同的运行配置,可能有不同的引导文件位置。您的配置将自动附加到另一个配置之上,并选择最新的配置作为默认配置。e、 g.我将传递正确的配置,除了它指向一个相邻配置的配置(该配置具有类似的结构和引导名称约定,因此很容易混淆两者)@HunterFrazier我在同一个项目中工作,在屏幕截图中,我使用相同的配置和引导文件。如何/在何处检查运行配置是否正在更改?