jrmadsen67 / laravel-route-coverage-test
Laravel 的路由覆盖率测试。
This package is auto-updated.
Last update: 2024-09-20 00:23:26 UTC
README
测试以确保所有路由至少被一个功能测试覆盖。
这是一种稍微粗糙但有效的方法来检查哪些路由缺少功能测试。它简单地使用中间件来记录在功能测试期间被击中的所有路由,并检查以确保与完整路由数量匹配。
zRouteCoverageTest
有一个有趣的名字,原因在于 - PHPUnit 按字母顺序运行测试。为了最简单地捕获所有测试覆盖率数据 首先,将其命名为在最后运行,并在您的功能目录中。此外 - 输出依赖于路由有名称来提供有用的数据。祝您测试愉快!
索引
安装
通过 Composer,您可以使用 composer require
运行,这将获取此存储库的最新版本...
composer require --dev jrmadsen67/laravel-route-coverage-test
...
php artisan vendor:publish --provider="jrmadsen67\LaravelRouteCoverageTest\Providers\CoverageServiceProvider"
...然后...
注意:请参阅标记为 1.1
的版本以支持 Laravel <5.5
。
安装 - 此包版本与 PHP & Laravel 版本的关系
以下表格描述了您将需要此包的哪个版本,以适用于给定的 PHP & Laravel 版本。
用法
通过 PHPUnit 或默认的 Laravel 测试套件正常运行测试。
php artisan test # OR vendor/bin/phpunit
测试
有一个预构建的 Docker 容器,其中包含 Alpine CLI 版本的 PHP + PHPUnit + xdebug。此设置用于测试项目,可以通过以下方式设置:
composer build
这将触发 Docker Compose 构建映像。
所有代码都有测试,可以通过以下方式运行:
# Using PHPUnit, with code coverage reporting, within the Docker container composer test # Using PHPUnit, with code coverage reporting, within the Docker container, specifying a direct test composer test-filtered ItGeneratesSqlFromMigrations # Using PHPUnit, with code coverage reporting, using local phpunit and xdebug composer test-local # Using PHPUnit, with code coverage reporting, using local phpunit and xdebug, specifying a direct test composer test-local-filtered ItGeneratesSqlFromMigrations
在这些测试中,有一个针对该包生产就绪实现的 Feature 测试。还有每个类编写的单元测试,以实现全面覆盖。
您还可以使用以下命令轻松在测试容器中打开一个 shell:
composer shell
变更日志
所有项目更改都应该在下面进行文档记录。版本遵循 SEMVER 标准。
版本 2.0.0
大型项目重构,有关更多信息,请参阅变更日志部分。
新增
- 支持配置来定义排除的路由和路由组
- 具有 XDebug 代码覆盖率支持的固定测试环境的 Docker 容器
- 新的全局测试路径辅助函数
tests_path()
,它将生成测试目录的完全合格路径 - 各种 composer 脚本来简化常见的测试和样式修复功能
- GitHub actions 以作为基本 CI 管道的自动化测试和样式修复
- Spatie Ray 支持,用于增强调试
- 对此包功能的测试
- 代码覆盖率,并将覆盖率提高到约 ~95%
- PHP-CS-Fixer,用于使项目样式遵循一组固定的代码标准
- 将包绑定到 PHP 和 Laravel 版本要求,以便轻松参考兼容性
更改
- 将中间件和测试之间的共享方法重构到新的
ReportHelper
对象中,用于测试目的并集中可重用代码 - 将包中间件重构到包及其命名空间中,再次以便进行测试,并且不要污染已安装的应用程序
- 将
xCoverageTest
重命名为zRouteCoverageTest
,以更好地反映测试覆盖的内容 - 完整重构 README,以最好地反映此更新中的更改
修复
- 中间件现在使用最新方法在全球范围内应用,适用于Laravel版本
>5.5
- 为
spatie/macroable
进行手动版本锁定至^1.0
,以修复Composer在要求冲突上的混淆
已移除
- 不再将包中间件发布到已安装的应用程序中,而是将其保留在包及其命名空间内
版本1.1
初始发布。预semver实现。
新增
- 所有内容
更改
- 所有内容
修复
- 所有内容
已移除
- 所有内容