问题标签 [cucumberjs]
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.
protractor - 一个人如何将 Q.all 与 chai-as-promised 一起使用?
chai-as-promised 文档有以下在同一个测试中处理多个 Promise 的示例:
我假设Q
这里来自npm install q
and var Q = require('q');
。
从哪里来.should
?
当我尝试这个时should
,undefined
我得到了TypeError: Cannot call method 'notify' of undefined
.
Q
是否应该先进行一些猴子修补?还是我使用了错误的版本?
我用量角器用黄瓜。据我了解,他们还不支持返回承诺,因此用户必须处理对done
.
webstorm - WebStorm 无法将 cucumber.js gerkhin 连接到实际的步骤定义
我有一个从命令行运行时可以正常工作的测试套件。然而,在 WebStorm 中,我在 .feature 文件中的所有步骤,WebStorm 都说他们找不到步骤定义。我也将它们移到了 step_definitions 文件夹中,当我将鼠标悬停在 WebStorm 中突出显示的“未定义步骤参考”上时,它似乎找到了它们,但它仍然无法将两者连接起来。有人知道怎么修这个东西吗?
angularjs - 使用量角器检查 DOM 元素中的文本
这是我在使用 Protractor 测试 Angular 应用程序时尝试做的事情。我想得到某个元素,有点像这样:
然后获取它的 html,并检查它是否包含我期望它具有的文本。
我尝试通过该cssContainingText
方法首先获取此元素,但效果不佳(不知道为什么;可能是因为段落中的文本是动态生成的)。所以现在我只使用by.css
定位器来获取这个元素。接下来,我正在检查它是否包含我正在测试的文本:
但这不起作用。问题是,el
是某种定位器对象,我不知道如何获取它找到的元素的 html 以便针对这个 html 进行测试。尝试了 .getText(),但没有成功。
有什么建议么?
javascript - 量角器测试在 Chrome 上随机停止
我使用 Protractor 和 CucumberJS 设置了一些 e2e 测试,但是在使用 Chrome 时遇到了很多困难。测试在 Firefox 上顺利通过,但在 Chrome 中,它们在任何步骤中随机停止。有时它只是挂起加载和 url,有时它会突然停止发送密钥,有时它会挂起试图“单击”一个按钮。有人有什么主意吗?在 Firefox 上一切正常。我已经尝试了很多东西:ignoreSyncronization,waitForAngular 没有任何运气......这是我的步骤定义:
};
这里有两个不同的屏幕截图,第一次,停止加载 url,第二次,发送密钥:
https://dl.dropboxusercontent.com/u/1437542/run1.jpg https://dl.dropboxusercontent.com/u/1437542/run2.jpg
node.js - 使用 Harmony 标志在 Webstorm 中运行 CucumberJS 测试?
我只是想看看我们是否可以在我们现有的代码库中加入一些 ES6 的优点,到目前为止一切都很好,尽管当我从 webstorm 开始我们的黄瓜 js 测试时,它被 ES6 语法炸毁了。
那么其他人有这个工作吗?我尝试添加--harmony
到 CucumberJs 参数但没有运气:(
javascript - 在回调中发送变量与不公开对象属性
我有两种不同的方式来编写 World 函数。第一个是来自 Cucumber.js 网站的示例。这基本上是在扩展他们现有的 World 对象。注释掉的第二个示例是我采用第一个示例代码并摆脱了那个世界变量并且在回调中不传递任何内容。我的代码也有效。
问题:为什么他们会在回调中发送这样的变量?这样做有什么好处吗?因为在我的示例中,我已经通过在示例中设置属性来扩展现有的 World 对象。
我对回调还是很陌生...
angularjs - CucumberJS 的量角器测试不规则通过
尝试使用 AngularJS 进行一些 BDD,因此我正在尝试使用 Protractor 和 CucumberJS 自动化场景。奇怪的是,试图让步骤定义智能地失败是魔鬼的工作。
Features.feature
步骤.js
索引.html
应用程序.js
量角器输出:
1 个场景(1 个通过) 3 个步骤(3 个通过)
上面的设置工作正常。Protractor 给出了正确的输出,我可以通过在 Then() 步骤中评估不正确的结果来使场景失败。看起来很好。
我看到的第一个问题是当我尝试使 When 步骤失败时。例如,使用上面相同的设置,但尝试定位不存在的元素。
量角器输出:NoSuchElementError: No element found using locator: by.model("AintNoGood") ... 1 个场景(1 个失败)3 个步骤(1 个失败,2 个通过)
第二步正确失败。我的印象是,当一个步骤失败时,所有后续步骤都会被跳过,但量角器会继续进行第三步,但无论如何都会通过。
更奇怪的是......我清空了 HTML。BDD 测试优先。
索引.html
假设我一次一步地经历这个场景,我为第二步编写定义,假设它会失败。
量角器输出:1 个场景(1 个待处理)3 个步骤(1 个待处理,2 个通过)
这样第二步就通过了。显然,它不应该在它应该位于 html 中的任何元素都没有时。
问题:
知道这里发生了什么吗?
如果没有,在我花更多时间试图理解它之前,我想知道是否有人成功地将 Protractor 与 CucumberJS 一起使用?
javascript - 如何在黄瓜钩子中使用全局变量调用 afterScenario
我有一个之后的场景:
我从我的步骤定义文件中将其称为:
即使我在步骤定义中设置全局参数“newPreCampaignName”的值,它在此调用中作为 null 传递:var afterHook = new afterScenario(newPreCampaignName,this);
需要帮助来解决这个问题。
protractor - 使用带循环的量角器来填写从 Cucumber.js 表中获取数据的表单
(我看过这个 SO 讨论,但不知道如何将它应用到我的案例中,所以我问了一个新问题。希望它不是重复的)
我正在使用 Protractor 和 Cucumber.js 测试用 Angular 编写的表单。
所以我想做的是告诉量角器去点击一个字段的标题(这是一个链接)然后,当那个字段出现时,在里面输入一些文本,然后转到下一个字段的标题,等等。
这是我在 Cucumber 中的步骤:
这是对步骤定义的半心半意的尝试:
但当然,这是行不通的,因为在 Protractor 有时间单击字段名称并将必要的数据输入字段之前,回调函数就被调用,Cucumber 进入下一步。
所以我的问题是,如何使用 Protractor 和 Cucumber.js 编写将 Cucumber 表中定义的数据插入表单字段的步骤?使用 for 循环是否可行?