问题标签 [behat]

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 回答
3576 浏览

behat - Behat 2.4 升级问题,或“behat”下无法识别的选项“extensions” - 尝试通过 behat.yml 激活 sahi 扩展时出错

Behat 的东西相当新,我遇到了一个我似乎无法绕过的障碍。我一直在盯着文档,在谷歌上搜索就像这是我的工作,并尽我所能避免把我的电脑从防火梯上扔掉。

我正在处理一个相当复杂的项目,而我不是设置它的人。所以我在某些方面有点迷茫。

目前,我正在尝试使用 Sahi 驱动程序,因为 selenium 并没有为我需要测试的一些动态形式削减它。我可以使用默认的 selenium 驱动程序很好地运行测试,但测试失败,因为它没有充分触发表单输入上的 JavaScript 事件。具体来说,它将与该链接中涵盖的解决方法一起使用,但前提是我将浏览器放在焦点上。这意味着当测试在酱汁中或通过 jenkins 与 xvfb 运行时,它会失败。

我解释这一切只是因为这是我的更大问题,我试图通过使用 Sahi 驱动程序来解决这个问题。这让我想到:

这就是我尝试按照文档所说的方式为我的 bahat.yml 中的特定配置文件激活 Sahi 驱动程序时得到的结果。

这是默认配置文件和我当前在我的 behat.yml 中使用的配置文件(稍作修改以供公众使用):

Fwiw,测试在一个 vm 上,我 ssh -X 进入,然后使用运行测试

当我使用默认的 selenium 驱动程序和 @javascript 标签时,浏览器会弹出并且测试运行并通过(当然,假设我保持浏览器处于焦点)。

我使用 composer 安装了额外的驱动程序:

我已经添加use Behat\Mink\Driver\SahiDriver;到我的 MinkContext.php、EnvironmentContext.php 和 FeatureContext.php,虽然我猜这可能是矫枉过正或没有必要。不过,在这一点上似乎没有什么不同。无论有没有它,我都会遇到同样的错误。

我还添加了一个sahi.php位于 features/bootstrap/mink 中的:

exensions我想也许出于某种原因在 features/bootstrap 中添加一个目录可能会有所帮助。甚至在其中插入了一个名为sahi.php. 那没有多大帮助。

我认为这涵盖了一切。提前感谢您的帮助,如果其他地方对此有所帮助,请指导我,因为我已经花了无数个小时寻找并没有找到任何可以帮助我的东西。

更新:

我按照此https://lestbddphp.wordpress.com/2012/08/31/behatcomposer/卸载了旧版本的 behat、mink 和 gherkin,并安装了 2.4 等

我一直在通过文档中的“从 Behat 2.3 迁移到 2.4”。(抱歉,不允许我发布更多链接,但它在 Behat 官方文档中。)

我的composer.json

behat.yml按照指示将文件移动到项目的根目录。我将我的default个人资料更新为:

虽然我不完全确定这就是我需要的。只需按照文档中给出的示例进行即可。

我更新了我vendor/autoload.php的替换require_oncerequire

但我对此有点困惑,因为该文件与 docs 中的示例代码不同。如果我要在此处的文档中添加该行,而不是已经存在的内容,那么它只会加载自己。(我试过了。它吐了。)我是不是完全密集,还是这里的措辞令人困惑/误导?我做对了吗?

正如我之前提到的,我有 3 个上下文文件features/bootstrap

通过 cli 运行测试时,我将它传递--profilebehat.yml. 在几乎所有的配置文件中,FeatureContext都使用了。

FeatureContext然后得到EnvironmentContextand MinkContext,据我所知。所以,理论上,一切都应该在那里工作。

只是它不是。

在我添加所有 Symfony 的东西之前,我得到了这个:

这就是为什么我通过作曲家添加 Symfony 的东西。

还可能值得注意的是:当我忘记通过作曲家安装 Symfony 的东西之前给它传递一个 --profile 时,我得到了这个:

我想这是可以预料的。

所以我现在很茫然。想法?

我将继续努力,看看我是否能弄清楚,但任何想法/输入将不胜感激。

再次更新:

从 yml 中删除扩展部分给了我这个:

behat.yml 的当前状态:

0 投票
2 回答
1371 浏览

windows-7 - 命令 php bin\behat 不起作用

你好我正在尝试使用命令

它不起作用结果是

我必须使用命令

并且 behat 正在工作。有人知道这个问题的解决方案吗?我也在这里问这个问题:http: //forum.symfony-project.org/viewtopic.php?f=23 &t=45834

0 投票
2 回答
2204 浏览

symfony - Behat、mink 和 goutte:当前 URI 必须是绝对 URL

我在 Behat 和 Mink 方面遇到了一些问题。使用的驱动程序是 Goutte。我正在尝试测试我的 Symfony 2.1 应用程序。

我的behat.yml

我的test.feature

当我尝试执行测试时(在 Windows 7 上):

测试停止于

然后我按“_submit”

出现此错误:

我已经尝试了几乎所有可能的 base_url 路径,但我没有设法让它工作。

你知道如何解决这个问题吗?

我尝试提交的表格:

0 投票
1 回答
4068 浏览

php - 如何在 behat 中激活 mink

我正在尝试一起使用 behat 和 mink,阅读该链接:

http://docs.behat.org/cookbook/behat_and_mink.html#method-1-composer

并尝试在 Behat 框架中激活 Mink,但它对我不起作用:(

这是文本表格手册

我在想他在说什么 /vendor/behat/mink-extension/behat.yml

我已将这些行添加到该文件中

但是当我在做的时候,$bin/behat -dl我只能看到

似乎 mink-extension 没有激活......但是我如何激活它,如果我做了手册中写的一切:(

PS我只是试图在全​​新的干净地方(新文件夹)中按照说明(从这里http://docs.behat.org/cookbook/behat_and_mink.html),但它不起作用它向我显示下一个错误

但是在教程中没有提到路径和 yml 修改 :( 也许是否存在任何更新的教程版本?

根据错误消息,我必须在 bootstrap 文件夹中创建一些 php 文件,但教程中没有描述 :( 奇怪

解决了:

最后它现在可以工作了:)谢谢

0 投票
1 回答
2730 浏览

behat - 步骤 url 应与 Behat 匹配

我正在测试 Mink 的步骤:那么 url 应该匹配“pattern”

我的网址有点像“/test/34kUñlj”,这是一个 _blank 目标。这意味着当我点击一个链接时,它会打开一个新窗口,并且 URL 是“/test/34kUñlj”。

我正在使用sahi驱动程序。/test/ 之后的模式是随机散列。

第一个问题是:url应该匹配的步骤被标记为未定义。我查看了 Mink 的 api,发现这一步不是“”,所以我尝试了这个:然后 url 应该匹配 /test/ñljñl23并且仍然将其标记为未定义。

第二个:为什么我跟着打开的新窗口?

最后:该网址“/test/342lñasjf”的模式如何。我使用“/test/\d+”

谢谢

0 投票
1 回答
420 浏览

symfony - Behat 我的定义未加载

我已经把一个巨大的列表定义放在我的FeatureContext唯一的问题是当我这样做时:bin/behat -c app/config/behat.yml -dl它们没有显示在列表中

这是我的behat.yml配置:

ContextClassitslef 是在我运行命令时生成的--init,我只是在其中添加了定义。

我错过了什么 ?谢谢。

0 投票
3 回答
13286 浏览

php - 如何让 Behat 等待 AJAX 调用?

场景:修改并保存对营销活动的不完整更改

关键是最后一步中的这个“错误气球”是一个ajax调用,然后会根据操作的成功与否带来一个绿色或红色气球。目前我所做的是在“并且我按下保存...”之后我会做一个 sleep(3) 让它有时间让这个气球出现。这似乎不太聪明,因为您在浪费时间,而且有时可能需要或多或少的时间来处理此呼叫。

你们如何让你的行为测试等待 Ajax 完成,而不是让野兽入睡?

非常感谢您的任何反馈!

0 投票
2 回答
3957 浏览

php - Behat Mink webdriver 会话在套件中的每个功能后都被销毁

我正在尝试使用 behat BDD 和 Mink 与 selenium webdriver for php 自动化 Sugarcrm 功能。我已经正确安装了它们,并且能够一起运行 behat 和 mink。例如检查登录到sugarcrm 作为一项功能。

现在的问题是当我创建两个功能文件时,分别是 login.feature 和 setup.feature。Behat 成功地在浏览器中自动执行登录过程,但一旦切换到需要从以前的功能维护登录会话的 setup.feature,它就会破坏会话并返回登录窗口。因此,第二个功能测试总是失败。

我如何为我的功能套件中的每个功能维护会话?

只是告诉你们,我也在一个功能文件中尝试过它们作为不同的场景,但没有运气,因为同样的事情正在发生

如果有人知道,请帮助我。

0 投票
3 回答
3772 浏览

php - 在 Behat 中配置 Symfony

我有一个项目,我在 Behat 中编写了功能/场景,现在几乎完成了。我必须在 symfony 派上用场的站点上测试电子邮件功能。但是,我找不到任何可以帮助我在 Behat 中配置 symfony 的教程。大多数网站在 Symfony 中提供 Behat,而不是其他方式。

这是我发现的文章,其中包含一些有关配置的信息,但并不完整。http://extensions.behat.org/symfony2

这篇文章http://docs.behat.org/cookbook/using_the_profiler_with_minkbundle.html 给出了检查电子邮件功能的代码,但没有说明如何在 Behat 中配置 symfony。我安装了 symfony 扩展。

这是我的 composer.json 内容:

有人可以在这里指导我吗?

0 投票
1 回答
2259 浏览

selenium - Mink 与 Selenium2:遵循所有重定向

如何在做一些断言之前强制 Selenium2 遵循所有重定向?

我想我可以简单地等待:

问题是无论我等待多久,我总是在“/auth”页面上结束,而不是“/main”。

更新:事实证明问题是神话般的,硒没有做任何特别的事情,并且浏览器默认情况下会像往常一样遵循重定向。在我的情况下,应该产生重定向的页面实际上是发送 200 响应。