jrmadsen67/laravel-route-coverage-test

Laravel 的路由覆盖率测试。

1.1 2020-05-27 03:22 UTC

This package is auto-updated.

Last update: 2024-09-20 00:23:26 UTC


README

Tests Style

测试以确保所有路由至少被一个功能测试覆盖。

这是一种稍微粗糙但有效的方法来检查哪些路由缺少功能测试。它简单地使用中间件来记录在功能测试期间被击中的所有路由,并检查以确保与完整路由数量匹配。

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实现。

新增

  • 所有内容

更改

  • 所有内容

修复

  • 所有内容

已移除

  • 所有内容