Laravel CRUD 应用 Dusk vs PHPUnit

Posted

技术标签:

【中文标题】Laravel CRUD 应用 Dusk vs PHPUnit【英文标题】:Laravel CRUD Application Dusk vs PHPUnit 【发布时间】:2020-08-31 11:21:31 【问题描述】:

我目前正在开发一个 Laravel CRUD 应用程序,我想知道为什么 phpUnit 不支持抓取浏览器(正如我所读的那样)。我已经通过 PHPUnit 覆盖了我的项目的基础,但我也想测试链接、标签、按钮点击等。所以我已经有了一个强大的单元测试基础。

现在我读到 Dusk 为 DOM 测试提供爬虫。我应该同时使用两者(甚至可能吗?)还是应该迁移到 Dusk?我不确定 Dusk 是否提供与 PHPUnit 相同的功能,并且如前所述,我确实已经拥有强大的 phpunit 测试基础。

从现在开始我有点卡住了,因为 50:50 的测试用例,因为我还需要测试 DOM 是否确实提供了正确的信息。

感谢任何帮助或专家建议。

提前谢谢你!

【问题讨论】:

Dusk 在 PHPUnit 下运行,所以.... PHPUnit 有点支持爬取浏览器,但不是开箱即用的,需要像... Dusk 这样的库。不过说真的,像您在 PHPUnit 套件中找到的传统测试这样的单元测试以及像 Laravel 的 HTTP 测试和 Dusk 测试这样的端到端测试的目的完全不同,您需要将 both 加入大多数情况 【参考方案1】:

Dusk 不是爬虫而是浏览器驱动,它可以控制(无头)浏览器。

专门设计在 PHPunit 之上进行 E2E(端到端)测试。

所以将浏览器测试 (html/javascript) 转换为 Dusk,但其他一切都保留为单元测试。

API 测试,例如你根本不需要黄昏。

【讨论】:

以上是关于Laravel CRUD 应用 Dusk vs PHPUnit的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Dusk 忽略 .env.dusk 和 .env.dusk.local(使用 Valet 和 Laravel 5.5)

使用 phpunit.xml、.env.dusk.local 和 sqlite 内存数据库设置 Laravel 5.4 和 Dusk

Laravel Dusk在转储浏览器时返回空的html文档,因此断言失败

Laravel dusk 安装 ChromeDriver 出错的解决办法

Laravel Dusk 错误:无法连接到 localhost 端口 9515:连接被拒绝

如何使用 Laravel Dusk 测试身份验证? [关闭]