分类: PHPUnit
-
针对在 Laravel 6、LightHouse 5 和 PHPUnit 环境中编写 Mutation 测试时需要删除缓存数据的需求,文章参考了 REST API 测试中先操作数据库再请求删除的思路。通过调整测试策略,先直接操作缓存生成明确的缓存标识,随后执行 HTTP API 请求进行删除操作。实际运行结果显示,该方案成功通过测试,实现了对删除缓存标识 Mutation 的有效验证。
-
在 Laravel 6.20.43 与 Lighthouse 5.45.0 环境下遇到类 ClearsSchemaCache 已弃用的问题,该类原用于在测试前清除模式缓存。查阅文档后,决定将其替换为 RefreshesSchemaCache 类。编辑指定模块的测试文件并完成代码替换后,重新运行测试并通过验证。
-
文章记录了在 Lighthouse 5 中基于 PHPUnit 编写 Mutation 测试的过程。通过编辑 GraphQL 测试文件解决了输入类型报错问题,并针对因请求参数重复导致验证失败的断言错误,将变量 key 的值改为基于时间戳生成。该方法在配置单独测试数据库的基础上,有效避免了多次运行测试时的参数冲突,确保了测试结果的稳定性。
-
编写 Lighthouse 5 自动化测试用例时,PhpStorm 无法自动完成且找不到 assertJson 声明。经排查,$response 对象实际路径显示为 \Illuminate\Foundation\Testing\TestResponse,而正常项目应为 \Illuminate\Testing\TestResponse。确定问题由 Laravel Framework 6.20.44 与 nuwave/lighthouse v5.36.0 版本不匹配导致。执行 Composer 命令将 nuwave/lighthouse 回退至 v4.10.2 后,代码提示恢复正常。
-
在编写 Lighthouse 5 自动化测试用例时,将单个测试方法拆分为两个后运行报错,提示 Call to undefined method Illuminate\Support\Facades\Config::set()。排查发现第二个方法中应用实例已不复存在。参考 PHPUnit 文档后,在 phpunit.xml 中设置 processIsolation 为 true,或者在运行测试时添加 –process-isolation 选项,即可实现进程隔离并解决该问题,使测试通过。
-
在运行 Lighthouse 测试用例时,遇到 Class ‘Overtrue\LaravelVersionable\ServiceProvider’ not found 错误。检查发现 vendor 目录未安装该包,但 bootstrap/cache/packages.phpunit.php 缓存文件中仍有其声明。分析原因是之前进行了 Git 本地重置导致缓存不一致,且缓存不应纳入 Git。最终手动删除 bootstrap/cache 目录下的缓存文件,再次运行测试后通过。
-
编写 Lighthouse 5 的自动化测试用例时,针对运行 GraphQL Query API 返回 200 的场景,重点测试 themeAssets 字段的响应。由于字段值无法预测且不准备插入新记录,因此仅验证字段是否存在。通过基于 $response->assertJsonStructure 断言响应具有给定的 JSON 结构来达成目的,最终运行测试并通过。
-
针对在 Laravel 6 中运行 phpunit 时出现内存耗尽的报错,文章介绍了解决该问题的过程。通过编辑 php.ini 文件将 memory_limit 设置从 1024M 提升至 4096M,成功解决了内存超限问题。此外,文章还建议避免运行全部测试用例,改用仅运行特定目录或文件的方式,如 tests/Unit 目录或单个测试文件,从而有效降低内存占用并缩短耗时。
-
本文记录了在编写 Lighthouse 5 自动化测试用例时遇到的断言失败问题。在使用 PHPUnit 进行 GraphQL 查询测试时,出现了 Syntax Error 及 Failed asserting that an array has the subset Array 的报错。经过排查,发现根源在于响应数据结构中多了一层花括号导致数据无法匹配。通过调整断言逻辑匹配数组的最后一个键值并修正查询结构,最终解决了测试不通过的问题。
-
本文介绍了基于 yiisoft/yii2-app-advanced 模板在 GitHub 上新建仓库并实现 RPC 服务端的过程。文章首先通过 Postman 验证了 API 目录中 RESTful 风格接口的正常运行,随后使用 Composer 安装 Hprose,复制并调整 frontend 目录以创建独立的 RPC 应用。接着,文章详细说明了配置 Bootstrap 别名、编辑环境脚本、新增 Nginx 虚拟主机及 Vagrant 配置的具体操作,并对测试套件进行了构建与运行。最终通过访问接口地址和 Vagrant 环境,验证了配置符合预期。
