ahrmerd/laravel-test-generator

Ahrmerd/TestGenerator 包是一个 Laravel 命令行工具,可以自动为您的 Eloquent 模型生成 API 和 Web 测试。只需几个简单命令,您就可以快速生成覆盖 CRUD 操作、验证和其他常见用例的全面测试文件。

2.0 2023-04-16 21:29 UTC

README

Ahrmerd/TestGenerator 是用于生成 Laravel 模型测试文件的命令行工具。它帮助您快速生成 Eloquent 模型的功能测试,以促进在 Laravel 应用程序中的自动化测试。

功能

  • 生成 Laravel 应用程序中单个模型或所有模型的测试文件
  • 自动生成常见 CRUD 操作(创建、读取、更新、删除)的测试方法
  • 提供模板以编写额外的测试场景的自定义测试方法
  • 自动根据模型名称生成测试文件名称
  • 支持 Laravel 表单请求类以提取验证规则
  • 使用 --force 标志覆盖现有测试文件

安装

您可以使用以下命令通过 Composer 安装 Ahrmerd/TestGenerator:

composer require ahrmerd/laravel-test-generator --dev

该软件包生成的测试需要 Pest 的 Laravel 插件才能工作。要开始使用 Pest 的 Laravel 插件,您需要通过 Composer 需求此插件。

composer require pestphp/pest-plugin-laravel --dev 

安装后,运行以下 Artisan 命令以发布配置文件:

php artisan vendor:publish --tag=TestGenerator-config 

兼容性

此包与 Laravel 10 及以上版本兼容。

配置

您可以使用 laravel-TestGenerator.php 配置文件配置 TestGenerator 软件包的行为。以下是一些可用选项:

- ignore_models

当传递 --all 选项时,应忽略生成测试的模型数组。列在此数组中的模型将不会生成测试。默认情况下,它会忽略为用户模型创建测试。例如:

    'ignore_models' => [
        'User', 'Post'
    ],

默认

要生成的默认测试类型。您可以指定 'api'、'web'、'both' 或 null(默认)。如果设置为 'api',则默认情况下将只生成 API 测试。如果设置为 'web',则默认情况下将只生成 Web 测试。如果设置为 'both',则默认情况下将生成 API 和 Web 测试。

使用方法

安装后,您可以通过命令行界面 (CLI) 使用 Ahrmerd/TestGenerator。以下是一些示例:

- 为特定模型生成测试

 php artisan generate:tests ModelName

此命令将为您的 Laravel 应用程序中的 ModelName 模型生成测试文件。测试文件将包含基于 --api 或 --web 选项提供的 CRUD 操作(如创建、读取、更新和删除)的测试方法(默认为 --api)。您还可以在生成的测试文件中添加自定义测试方法。

- 为所有模型生成测试

php artisan generate:tests --all

此命令将为您的 Laravel 应用程序中的所有模型生成测试文件。每个测试文件将包含 CRUD 操作的测试方法(默认为 --api),以及编写额外测试场景的自定义测试方法的模板。

- 覆盖现有测试文件

php artisan generate:tests ModelName --force

默认情况下,Ahrmerd/TestGenerator 不会覆盖现有测试文件。但是,您可以使用 --force 标志覆盖现有测试文件(如果需要)。请谨慎使用此选项,因为它将覆盖指定模型的所有现有测试文件。

- 指定要生成的测试类型

php artisan generate:tests ModelName --api

此命令将为ModelName模型生成测试文件,包括特定于测试API路由和功能的测试方法。您还可以使用 --web 选项来生成测试Web路由和功能的测试方法(默认会同时为API和Web生成)。

注意

-您可以使用任何组合的选项(--api, --web, --force)来自定义生成的测试文件以满足您的需求。-您可以在生成的测试文件中自定义生成的测试方法或添加您自己的自定义测试方法以满足您的特定测试需求。-Pest PHP是生成测试工作所必需的。在运行 generate:tests 命令之前,请确保您已在Laravel项目中安装并配置了Pest PHP。

贡献

Ahrmerd/TestGenerator的热心贡献者欢迎!如果您想做出贡献,请遵循标准的GitHub Fork & Pull Request工作流程。