magic-test/magic-test-laravel

使用 Magic Test 与 Laravel

v1.0.0 2023-03-24 17:28 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Magic Test 允许您通过简单地点击正在测试的应用程序来编写浏览器测试,而无需重启测试环境带来的缓慢。
它反转了编写测试的体验,并避免了在测试、终端和模板文件之间来回奔波。 在这里查看操作演示。
通过视频最容易解释 Magic Test。 在这里查看。

Magic Test 由 Andrew CulverAdam 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)。有关更多信息,请参阅许可证文件