在 laravel 4.2 项目上运行具有代码覆盖率的 phpunit 时的空目录
Posted
技术标签:
【中文标题】在 laravel 4.2 项目上运行具有代码覆盖率的 phpunit 时的空目录【英文标题】:Empty directory when running phpunit with code coverage on a laravel 4.2 projecct 【发布时间】:2017-12-20 03:33:55 【问题描述】:我正在尝试设置 phpunit 以显示我的项目的代码覆盖率。我遵循了在谷歌上找到的示例,基本上有以下设置:
composer.json
"require-dev":
"phpunit/phpunit": "5.*",
"phpunit/php-code-coverage": "^4.0.4",
"mockery/mockery": "^0.9.9"
,
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Application Test Suite">
<directory>./app/tests/</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">app/</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-html" target="./report/" charset="UTF-8"
yui="true" highlight="false"
lowUpperBound="50" highLowerBound="80"/>
</logging>
</phpunit>
当我在 homestead 虚拟机上运行所有测试时
vendor/phpunit/phpunit/phpunit
测试运行但没有代码覆盖生成到“报告”目录。它仍然是空的。
我做错了什么?
【问题讨论】:
在 google 上找到 -> 只需链接 that 示例,因为 google 更改了内容并且您没有共享搜索字词(以及国家/地区、IP、android 版本、您的 google 历史记录还有什么不是你的整个文件(生活)在线,这将使谷歌结果显而易见)。除此之外(实际上只是链接它),看起来您没有将 phpunit 运行的输出添加到问题中。 (1/2) 在第一次拍摄时,我猜你没有启用 xdebug 等等。没有给出代码覆盖率。这被输出为“错误”,但未标记为错误(可能是一个太常见的错误,因此不予处理),因此不会生成代码覆盖率报告。通常这就像在php.ini
中启用 xdebug 一样简单,以便可以收集和报告代码覆盖率信息。
【参考方案1】:
我突然想到在运行时发生了一个致命错误。修复此问题后,生成了代码覆盖率报告。
【讨论】:
以上是关于在 laravel 4.2 项目上运行具有代码覆盖率的 phpunit 时的空目录的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 4.2 中覆盖 Mail MailgunTransport 类
从 4.1 升级到 4.2 后 Laravel 控制器路由中断