friends-of-phpspec / phpspec-code-coverage
为 PhpSpec 测试生成代码覆盖率报告
Requires
- php: >= 7.3
- phpspec/phpspec: ^6.0 || ^7.0
- phpunit/php-code-coverage: ^9.2 || ^10.0 || ^11.0
- phpunit/php-file-iterator: ^3.0 || ^4.0 || ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- phpstan/phpstan: ^1.5
Suggests
- ext-pcov: Install PCov extension to generate code coverage.
- ext-xdebug: Install Xdebug to generate phpspec code coverage.
Conflicts
- sebastian/comparator: < 2.0
This package is auto-updated.
Last update: 2024-09-12 13:37:26 UTC
README
phpspec-code-coverage
phpspec-code-coverage是一个PhpSpec扩展,用于生成PhpSpec测试的代码覆盖率报告。
生成代码覆盖率报告可以让你分析代码库中哪些部分被测试以及测试效果如何。然而,代码覆盖率本身不应该作为衡量测试质量的一个唯一指标。
要求
兼容性
变更日志
请参阅CHANGELOG.md获取最近更改的信息。
安装
将此软件包作为项目的开发依赖项安装
$ composer require --dev friends-of-phpspec/phpspec-code-coverage
通过编辑项目中的phpspec.yml
文件来启用扩展
extensions: FriendsOfPhpSpec\PhpSpec\CodeCoverage\CodeCoverageExtension: ~
这将足以通过使用扩展提供的默认设置启用代码覆盖率生成。此扩展支持各种配置选项。要查看一个完全注释的示例配置文件,请参阅配置部分。
用法
如果您执行phpspec run
命令,您将在coverage
目录(以html
格式)中看到生成的代码覆盖率。
$ bin/phpspec run
注意!在生成代码覆盖率报告时,请确保PHP进程通过CLI运行时没有内存限制(即在/etc/php/cli/php.ini
中将memory_limit
设置为-1
)。
使用phpdbg运行
此扩展现在支持phpdbg,当使用较新的PHP版本时,这将导致执行速度更快。通过phpdbg运行phpspec
$ phpdbg -qrr phpspec run
注意!使用phpdbg进行代码生成时,需要PHP 7+。
配置
以下是一个完全注释的phpspec.yml
示例文件,可以作为进一步自定义扩展默认设置的起点。下面的配置文件包含所有配置选项。
# phpspec.yml # ... extensions: # ... other extensions ... # friends-of-phpspec/phpspec-code-coverage FriendsOfPhpSpec\PhpSpec\CodeCoverage\CodeCoverageExtension: # Specify a list of formats in which code coverage report should be # generated. # Default: [html] format: - text - html #- clover #- php #- xml #- cobertura # # Specify output file/directory where code coverage report will be # generated. You can configure different output file/directory per # enabled format. # Default: coverage output: html: coverage #clover: coverage.xml #php: coverage.php #xml: coverage #cobertura: cobertura.xml # # Should uncovered files be included in the reports? # Default: true #show_uncovered_files: true # # Set lower upper bound for code coverage # Default: 35 #lower_upper_bound: 35 # # Set high lower bound for code coverage # Default: 70 #high_lower_bound: 70 # # Whilelist directories for which code generation should be done # Default: [src, lib] # # Should text output show only summary? # Default: false #show_only_summary: true # whitelist: - src - lib # or to apply filtering on files names #- directory: src # suffix: "Controller.php" # prefix: "Get" # # Whiltelist files for which code generation should be done # Default: empty #whilelist_files: #- app/bootstrap.php #- web/index.php # # Blacklist directories for which code generation should NOT be done #blacklist: #- src/legacy # or to apply filtering on files names #- directory: src/legacy # suffix: "Spec.php" # prefix: "Test" # # Blacklist files for which code generation should NOT be done #blacklist_files: #- lib/bootstrap.php
选项
format
(可选):生成代码覆盖率时应使用的格式列表。可以是以下之一:clover
、cobertura
、crap4j
、php
、text
、html
、xml
(默认html
)注意:当使用clover
格式选项时,您必须为clover
格式配置特定的output
文件(见下文)。output
(可选):为特定代码覆盖率格式设置输出文件/目录。如果您配置了多个格式,则采用format:output
的哈希(例如clover:coverage.xml
)(默认coverage
)show_only_summary
(可选)用于在文本报告中只显示摘要(默认false
)show_uncovered_files
(可选)用于在覆盖率报告中包含未覆盖的文件(默认true
)lower_upper_bound
(可选)设置代码覆盖率的上限(默认35
)high_lower_bound
(可选)设置代码覆盖率的高下限(默认70
)whitelist
接受一个目录白名单数组(默认:lib
,src
)。如果提供了一个具有以下键的关联数组,则数组可以更加具体(directory
,prefix
,suffix
)whitelist_files
接受一个文件白名单数组(默认:无)blacklist
接受一个目录黑名单数组(默认:test
,vendor
,spec
)。如果提供了一个具有以下键的关联数组,则数组可以更加具体(directory
,prefix
,suffix
)blacklist_files
接受一个文件黑名单数组
作者
版权所有(c)2017-2018 ek9 [email protected] (https://ek9.co)。
版权所有(c)2013-2016 Henrik Bjornskov,部分代码来自 henrikbjorn/phpspec-code-coverage 项目。
许可证
在 MIT 许可证 下许可。