magic-test / magic-test-laravel
使用 Magic Test 与 Laravel
Requires
- php: ^7.4|^8.0
- ext-json: *
- illuminate/contracts: ^9.0|^10.0
- illuminate/support: ^9.0|^10.0
- laravel/dusk: ^7.0
- nikic/php-parser: ^4.10.3
- psy/psysh: ^0.11
- spatie/backtrace: ^1.1
- spatie/laravel-package-tools: ^1.1
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.3|^10.0
- vimeo/psalm: ^4.6|^5.6
This package is auto-updated.
Last update: 2024-09-24 21:03:18 UTC
README
Magic Test 允许您通过简单地点击正在测试的应用程序来编写浏览器测试,而无需重启测试环境带来的缓慢。
它反转了编写测试的体验,并避免了在测试、终端和模板文件之间来回奔波。 在这里查看操作演示。
通过视频最容易解释 Magic Test。 在这里查看。
Magic Test 由 Andrew Culver 和 Adam Pallozi 为 Ruby on Rails 创建。
Laravel Magic Test 由 Mateus Guimarães 创建。
Magic Test 还处于早期开发阶段,包括文档。如果您有任何问题没有在文档中解决,请将其作为问题提交,以便在文档中得到适当的处理。
⚠️ 如果您使用 Windows/Laragon:此包与 Windows/Laragon 不兼容,因为它不支持 TTY。此包确实与 WSL 兼容。
安装
您可以通过 composer 安装此包
composer require magic-test/magic-test-laravel --dev
用法
在您的 Laravel Dusk 测试中,只需在方法链末尾添加 magic()
。例如
public function testBasicExample() { $this->browse(function (Browser $browser) { $browser->visit('/') ->magic(); }); }
要运行 Magic Test,您只需运行命令 php artisan magic
。幕后,它与运行 php artisan dusk
相同,但它将保持浏览器窗口开启。
这将使您有两个或三个窗口
- 浏览器
- 交互式 Shell
- 如果已打开,您的文本编辑器
为了获得 Magic Experience™️,我们建议您将三个窗口排列以适应您的屏幕。这样,您就可以实时看到生成的测试。
录制动作
一旦浏览器打开,Magic Test 将开始捕获您所有的动作。您可以点击、填写输入、复选框、选择和单选按钮,就像手动测试应用程序一样。
生成断言
此外,您可以通过选择给定文本然后按 ControlShift + A 生成文本断言。您将看到一个对话框确认已记录断言。
将新动作保存到测试文件
要将记录的动作保存,只需在 Shell 中键入 ok
。您可以随时关闭它并返回您的 Magic Session,或者继续录制更多动作。
如果您对测试满意,您可以在 Shell 中键入 finish
,它将从您的测试中删除 magic()
调用,留下一个干净、可工作的测试。
查看它的工作方式 在这段视频中
魔法测试还处于早期阶段,因此您可能会发现输出结果并不完全符合您的期望。在这种情况下,请提交一个问题,我们将尽快改进。
已知问题
魔法测试与Inertia.js断言配合不佳。如果您在集成测试中使用Inertia,请在您的setUp
方法中添加以下代码来禁用魔法测试:
<?php use MagicTest\MagicTest\MagicTest; class MyTest extends TestCase { protected function setUp(): void { parent::setUp(); MagicTest::disable(); } }
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关如何报告安全漏洞的信息,请参阅我们的安全策略。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。