PhpUnit代码覆盖范围不起作用-MacOs Sierra

PhpUnit代码覆盖范围不起作用-MacOs Sierra,phpunit,code-coverage,xdebug,php-7,macos-sierra,Phpunit,Code Coverage,Xdebug,Php 7,Macos Sierra,我有一个项目,我为其编写单元测试,然后使用代码覆盖率报告运行它们 Windows 10计算机上的设置是:PHP7.0.2、xDebug 2.4.1、PhpUnit 5.6.1、代码覆盖率4.0.1。一切正常,代码覆盖率显示相关结果 然后我在MacBook上克隆了相同的项目,并安装了MacOs Sierra。首先,我在PHP7.0.12上运行该项目,所有其他版本都是相同的。结果代码覆盖率失败——在所有类别中显示为0 我认为xDebug 2.4.1和PHP7.0.12不兼容,这就是为什么我转而使用P

我有一个项目,我为其编写单元测试,然后使用代码覆盖率报告运行它们

Windows 10计算机上的设置是:PHP7.0.2、xDebug 2.4.1、PhpUnit 5.6.1、代码覆盖率4.0.1。一切正常,代码覆盖率显示相关结果

然后我在MacBook上克隆了相同的项目,并安装了MacOs Sierra。首先,我在PHP7.0.12上运行该项目,所有其他版本都是相同的。结果代码覆盖率失败——在所有类别中显示为0

我认为xDebug 2.4.1和PHP7.0.12不兼容,这就是为什么我转而使用PhpDbg覆盖代码。不幸的是没有运气

最后,我通过自制PHP存储库获得了一个旧的(7.0.2)PHP版本并安装了它。因此,我在MacOs Sierra上获得了PHP7.0.2、xDebug 2.4.1、PhpUnit 5.6.1、代码覆盖率4.0.1。我运行了测试,代码覆盖率再次达到0


因此,我有完全相同的设置,但有一个不同之处——主机操作系统。MacOs是否可能是代码覆盖率失败的原因?也许,我还错过了什么?

暂时忽略你的主应用程序,设置一个小的独立应用程序,只包含一个类、方法和测试。Mac电脑上的代码覆盖率有效吗?也许还可以比较一下你的composer.lock文件,看看是否还有其他你可能没有注意到的版本差异(longshot,但是嘿:很容易检查)。@AdamCameron感谢你指出,因为在一个只有一个类、一个方法和一个测试的测试项目中,所有东西都可以工作,代码覆盖率显示100%。所有版本都是相同的,因为composer.lock是相同的,所有的东西都是从它安装的。@AdamCameron不过我应该更深入地了解配置,可能有一些不兼容的地方。@AdamCameron,天哪!这太傻了,也太有趣了)原因在于目录名——在unix系统上它们是区分大小写的,在我的配置的白名单中我使用了小写名称,尽管它们有大写字母。我已经花了几个小时,而解决方案只花了2秒钟)哈!我有点忽略了文件系统外壳,因为我只考虑了代码文件,如果是这样的话,你就会出错。没有想到白名单!很高兴你把它整理好了。