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 出错的解决办法