问题标签 [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.
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_once
为require
:
但我对此有点困惑,因为该文件与 docs 中的示例代码不同。如果我要在此处的文档中添加该行,而不是已经存在的内容,那么它只会加载自己。(我试过了。它吐了。)我是不是完全密集,还是这里的措辞令人困惑/误导?我做对了吗?
正如我之前提到的,我有 3 个上下文文件features/bootstrap
:
通过 cli 运行测试时,我将它传递--profile
给behat.yml
. 在几乎所有的配置文件中,FeatureContext
都使用了。
FeatureContext
然后得到EnvironmentContext
and MinkContext
,据我所知。所以,理论上,一切都应该在那里工作。
只是它不是。
在我添加所有 Symfony 的东西之前,我得到了这个:
这就是为什么我通过作曲家添加 Symfony 的东西。
还可能值得注意的是:当我忘记通过作曲家安装 Symfony 的东西之前给它传递一个 --profile 时,我得到了这个:
我想这是可以预料的。
所以我现在很茫然。想法?
我将继续努力,看看我是否能弄清楚,但任何想法/输入将不胜感激。
再次更新:
从 yml 中删除扩展部分给了我这个:
behat.yml 的当前状态:
windows-7 - 命令 php bin\behat 不起作用
你好我正在尝试使用命令
它不起作用结果是
我必须使用命令
并且 behat 正在工作。有人知道这个问题的解决方案吗?我也在这里问这个问题:http: //forum.symfony-project.org/viewtopic.php?f=23 &t=45834
symfony - Behat、mink 和 goutte:当前 URI 必须是绝对 URL
我在 Behat 和 Mink 方面遇到了一些问题。使用的驱动程序是 Goutte。我正在尝试测试我的 Symfony 2.1 应用程序。
我的behat.yml:
我的test.feature:
当我尝试执行测试时(在 Windows 7 上):
测试停止于
然后我按“_submit”
出现此错误:
我已经尝试了几乎所有可能的 base_url 路径,但我没有设法让它工作。
你知道如何解决这个问题吗?
我尝试提交的表格:
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 文件,但教程中没有描述 :( 奇怪
解决了:
最后它现在可以工作了:)谢谢
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+”
谢谢
symfony - Behat 我的定义未加载
我已经把一个巨大的列表定义放在我的FeatureContext
唯一的问题是当我这样做时:bin/behat -c app/config/behat.yml -dl
它们没有显示在列表中
这是我的behat.yml
配置:
ContextClass
itslef 是在我运行命令时生成的--init
,我只是在其中添加了定义。
我错过了什么 ?谢谢。
php - 如何让 Behat 等待 AJAX 调用?
场景:修改并保存对营销活动的不完整更改
关键是最后一步中的这个“错误气球”是一个ajax调用,然后会根据操作的成功与否带来一个绿色或红色气球。目前我所做的是在“并且我按下保存...”之后我会做一个 sleep(3) 让它有时间让这个气球出现。这似乎不太聪明,因为您在浪费时间,而且有时可能需要或多或少的时间来处理此呼叫。
你们如何让你的行为测试等待 Ajax 完成,而不是让野兽入睡?
非常感谢您的任何反馈!
php - Behat Mink webdriver 会话在套件中的每个功能后都被销毁
我正在尝试使用 behat BDD 和 Mink 与 selenium webdriver for php 自动化 Sugarcrm 功能。我已经正确安装了它们,并且能够一起运行 behat 和 mink。例如检查登录到sugarcrm 作为一项功能。
现在的问题是当我创建两个功能文件时,分别是 login.feature 和 setup.feature。Behat 成功地在浏览器中自动执行登录过程,但一旦切换到需要从以前的功能维护登录会话的 setup.feature,它就会破坏会话并返回登录窗口。因此,第二个功能测试总是失败。
我如何为我的功能套件中的每个功能维护会话?
只是告诉你们,我也在一个功能文件中尝试过它们作为不同的场景,但没有运气,因为同样的事情正在发生
如果有人知道,请帮助我。
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 内容:
有人可以在这里指导我吗?
selenium - Mink 与 Selenium2:遵循所有重定向
如何在做一些断言之前强制 Selenium2 遵循所有重定向?
我想我可以简单地等待:
问题是无论我等待多久,我总是在“/auth”页面上结束,而不是“/main”。
更新:事实证明问题是神话般的,硒没有做任何特别的事情,并且浏览器默认情况下会像往常一样遵循重定向。在我的情况下,应该产生重定向的页面实际上是发送 200 响应。