问题标签 [laravel-dusk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
168 浏览

laravel-5.4 - 运行 Dusk Laravel 5.4 Ubuntu 时的问题

我按照https://laravel.com/docs/5.4/dusk的教程进行操作,但是当我运行时php artisan dusk

在此处输入图像描述

冻结它,不再执行,也不要打开任何浏览器。有人有一些想法为什么?

您可以在下面看到我的 AppServiceProvider:

应用服务提供者

然后,如果需要这么长时间,它会显示: 在此处输入图像描述

0 投票
2 回答
5231 浏览

unit-testing - Laravel 5.4;如何从 Laravel 包运行单元测试?

我正在尝试开发一个 Laravel 作曲家包并在其中运行单元测试。在过去几天阅读了各种过时且相互矛盾的指南和博文之后,我完全不知道如何去做。

到目前为止,这是我所知道的:

  • 我不应该从 Laravel 主安装运行测试。测试都应该包含在包中。我承认这有一定的逻辑。
  • 有一种叫做Orchestra Testbench的东西。如果你正在开发一个 Laravel 包,那么显然你应该使用它。
  • 还有一个叫做Laravel Dusk的东西,它包含在 Laravel 5.4 中。

我可以通过给出的示例让 Orchestra Test Bench 使用一些基本测试,但我并不真正了解发生了什么,文档几乎没有解释任何内容。在测试我的应用程序的路由时,我什么都做不了。

我不明白 Orchestra 和 Dusk 是否可以一起演奏,或者我必须在它们之间做出选择。如果是这样,我应该使用哪一个?如果它是我应该使用的 Laravel Dusk,那么如何从我的包目录中运行它?

0 投票
4 回答
3107 浏览

laravel - 我们如何使用 Laravel Dusk 检查 Twitter Bootstrap 单选按钮?

根据twitter bootstrap,这就是我们做收音机的方式:

这是我的代码:

使用标签标签内的输入。但问题是 Dusk(实际上是 Facebook Webdriver)无法通过这种方式找到它。它不断提高:

为了使它工作,我将输入放在标签之外,但是,当然,boostrap 收音机不再按应有的方式显示。

也不能使用 ID:

甚至没有为输入设置 ID:

并尝试以这种方式选择它:

问题是 Dusk (Webdriver) 甚至看不到页面中的元素,因为这个简单的类似失败的方式完全相同:

导致:

每当我有一个带有标签的输入表单时都会发生这种情况,如果我从标签中取出输入,它就会起作用。但这并不像收音机那样简单,因为它与其他一些输入,收音机一样。

这是一个正确编码的收音机:

图片

这是一个带有标签标签外输入的收音机:

图片

那么,你是怎么做到的呢?

0 投票
7 回答
9494 浏览

php - Laravel Dusk,如何在测试之间销毁会话数据

我开始使用 Laravel Dusk 进行浏览器测试,并创建了几个测试来测试我的登录表单。我有以下代码:

见评论。第一个函数运行良好,但是当涉及到第二个函数时,我必须先注销,因为运行第一个函数后用户已经登录。这让我感到惊讶,因为我认为单元测试是完全独立的,会话数据会自动销毁。

有没有更好的方法来做到这一点 - 一些我可能错过的 Dusk 方法 - 而不是必须调用$browser->visit('/admin/logout');

谢谢

编辑感谢到目前为止的 2 个答案,这两个答案似乎都是有效的解决方案。我已将第二个函数更新为以下内容:

哪个工作。所以

  1. 我可以放心地假设第二个浏览器只在这个单一功能的持续时间内存在,对吗?
  2. 创建第二个浏览器实例而不是使用拆卸方法有哪些明显的优点/缺点?
0 投票
2 回答
1173 浏览

laravel - 功能测试和浏览器测试之间的区别

我当时对 Laravel 中的特性和单元测试很熟悉。但最近我创建了一个新项目并发现了 Laravel Dusk。安装后,现在还有一个浏览器目录,我可以在其中放置我的测试。但现在我很困惑,功能和浏览器测试有什么区别?例如,我会将测试放在哪里

浏览器行为(交互)是典型的浏览器测试吗?并且类似请求的测试,例如测试 HTTP 状态 200 的端点以确保此时没有任何问题是功能测试吗?

0 投票
1 回答
760 浏览

laravel - Laravel Dusk 测试在开发中工作但在生产中失败

大家好,我有一个 Laravel 应用程序,它通过 Gitlab CI 运行它的 CI,我有一个问题,我使用黄昏的测试在我的机器上运行良好,但由于某种原因,每当我将它推送到 gitlab CI 时它都会失败......

那就是有问题的测试,而具体失败的部分就是该waitForText部分。

我有另一个 Dusk 测试,它只是检查当你尝试去时,你/dashboard是否被重定向到登录页面,并且一个工作正常,我什至做了一个,->assertSee("Login")所以我不认为问题是xvfb,但我很困惑。

这是我相对于黄昏测试的 gitlab CI 配置

如您所见,我使用模型工厂生成用户,并且我已经验证了用户实际上是使用var_dump

有问题的文本作为Vuetify 快餐 组件的一部分出现,有点像吐司出现,然后在 5 秒后闪烁,这一切在我的机器上都可以正常工作,所以我认为组件本身不是问题。

waitForText在 CI docker 容器等无头环境中运行 Dusk 实例时,是否有人对命令有疑问?

0 投票
1 回答
318 浏览

laravel - Laravel 5.4 浏览器测试,无法输入输入字段:需要 X 显示

我正在关注 Laravel 文档 ( https://laravel.com/docs/5.4/dusk ) 为我的应用程序创建浏览器测试。

经过一些试验,我让 Dusk 运行。它仅在--headless使用模式时运行——否则,PHP 单元挂起而没有任何输出。

无论如何,我在尝试测试登录页面时收到以下错误消息:

代码没什么特别的,只是在字段中输入:

我是测试新手,任何帮助将不胜感激。

0 投票
2 回答
3551 浏览

laravel-5.4 - 如何在 laravel 黄昏检查第 n 个孩子

我想点击类元素 2. 如何进入nth-child classlaravel 黄昏。

0 投票
1 回答
417 浏览

laravel - Laravel Dusk 迁移回滚导致 Schema Changed 异常

我正在尝试在与我的应用程序分开的文件数据库中的 sqlite 上运行一些浏览器测试。

在一个过程中我运行

在另一个我跑

似乎发生的是我的测试运行,数据库迁移,运行我的测试,该测试通过然后按预期回滚。

然而,在成功的测试之后,我的 Laravel 日志中充满了大量的异常,这些异常与在没有模式和数据的情况下发出请求时所预期的不同,以及其他诸如

我不明白为什么它会在成功测试后提出请求或做某事。

哪个产量

但是,如果我跟踪它们,我会看到我的日志文件充满了错误。

任何人都能够阐明可能发生的事情?

我正在使用的黄昏环境文件如下

更新:一些格式错误的资产 URL 导致后续请求失败。

但是,如果我禁用回滚,则不会创建任何上述记录的异常。如果数据存在,回滚似乎会导致问题。

如果我允许回滚但在测试期间不运行任何工厂,它可以很好地回滚。

如果我在测试期间插入数据后允许回滚,它会回滚但有很多异常。

0 投票
0 回答
804 浏览

php - 尝试同时运行多个 Laravel Dusk 测试时出现“没有此类会话错误”

我正在使用 Laravel Dusk 来测试应用程序,我想同时运行多个测试实例。我有 2 个 Laravel 项目,每个项目都包含针对某个版本的应用程序的测试,这需要单独的 Chrome 实例(使用的 ChromeDriver 版本是 2.28)

为此,我php artisan dusk在每个项目文件夹中运行该命令,但一段时间后出现以下错误,导致两个 Chrome 实例都崩溃:

有没有办法在不同的 Chrome 实例中同时运行这些测试?