问题标签 [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.
javascript - 如何在 Cucumber-JS 步骤定义中使用 Node-mysql 连接到 MySQL?
我正在尝试使用node-mysql通过 world.js 中定义的连接方法连接到我的 Cucumber-JS stepDefinition 文件中的 MySQL 数据库。不幸的是,它不会连接并返回我的查询结果,我也无法让它显示一条错误消息,帮助我找出哪里出错了。
我过去使用过 Cucumber-JVM,但对 JavaScript 和 node.js 还是陌生的。我用相同的方法创建了一个独立的 js 文件(模仿 world.js),并从另一个测试脚本成功调用它(模仿 stepDefinitions.js);它连接并愉快地返回记录,所以这可能是由于我对 JavaScript 中的上下文的误解,或者在 Cucumber-JS 使用世界的方式中,也许......
stepDefinitons.js:
世界.js:
当我执行代码时,我从 connection.connect() 中什么也得不到,既没有错误也没有日志,没有记录从 connection.query() 中注销,并且“连接状态 2 =”的连接显示(在底部) _connectCalled 值为 true,但状态为断开连接且 threadId 为 null:
node.js - Cucumber JS 并实际完成了一些事情
在完全困惑并在教程之后谷歌搜索教程,阅读不涵盖 JS 实现的有关黄瓜的书籍之后,我克服了对火焰的恐惧并决定在这里发布我的问题。
我已经在我的盒子上设置了 Cucumber-JS,运行良好。我使用 CoffeeScript,因为我很懒。我得到了我的 features 文件夹,写了我的 .feature。得到了我的步骤定义,并发现 Cucumber JS 需要一个“世界”的东西才能接近有用。刚才我还发现,可以对 env.js 进行一些调整,以使此设置找到我的应用程序的其余部分。
我不是在构建基于 Web 的应用程序,因为我希望首先制定一些核心逻辑。我的麻烦开始的地方是我现在应该如何继续的部分。
我在项目根目录中有一个名为“lib”的文件夹。在其中,它将有我的 JS 应用程序,我最终将通过 NodeJS 运行它。
我必须对 env.js、world.coffee 和 mystep 定义进行哪些更改才能测试我在 lib/myapp.coffee 中开发的代码?
谢谢!
meteor - 使用 Meteor 进行自动化测试
我正在接近用 Meteor 做一些真正有用的事情。在与 NodeJS 和 Cucumber 交战之后,我终于到了超越写一些 Gherkinish 的界限的阶段——而且我被提供自动化测试设施的 Ruby 框架(如 Capybara)宠坏了,我想问一下哪种解决方案将适合 Meteor、Flow Router、Blaze、Cucumber 和 CoffeeScript 进行此类自动化,模拟和统一真实用户与流星应用程序的交互。
非常感谢您的反馈!
cucumber - 用量角器和黄瓜处理了几次测试
我实际上是在尝试配置量角器和黄瓜来运行测试,实际上它们似乎被启动了好几次。这是我的命令的结果NODE_ENV=test protractor test/protractor.conf.coffee
这是功能
这是我的protractor.conf.coffee
你知道他们为什么要发射几次吗?
cucumberjs - 你能指出一个使用 cucumber.js 和 frisby.js 的例子吗?
我们想在黄瓜步骤中使用 frisby.js。谁能指出我做同样的例子?
谢谢
cucumberjs - 有没有办法在前一个场景中的步骤失败后继续执行测试场景?
每当在远程服务器上运行时出现步骤失败,我想捕获失败的步骤,然后继续运行剩余的场景。然后将捕获的步骤包含在文件中以用于报告目的。这是一种可能吗?我在其他地方看到的所有回复都只是说你应该在继续之前修复测试。我同意,但我只希望测试在本地运行时停止,而不是远程运行。
➜ customer git:(pat104) ✗ cucumber.js -f progress (pat104⚡)
...F-----Failed scenario: View and select first contact from contact history
...F-Failed scenario: View and select a contact from multiple contacts in history
..................................................F---Failed scenario: Navigating to profile with url and enrollmentId
...................................................F-Failed scenario: Successful MDN Search with 1 result returned. Tech Selects and continues
.............FFailed scenario: Successful MDN with multiple results
javascript - 将 Protractor 与 SystemJS 一起使用的正确方法是什么?
这个问题也应该适用于 requirejs。
具体情况:
- 量角器
- SystemJS 加载 ES6 BabelJS 转译的系统模块
- 黄瓜.js
- 柴,柴如约而至
我问的原因是因为我只有几个非常基本的黄瓜测试,有时我会收到涉及超时或等待与页面同步等的错误(不一致)。其他时候我的测试通过并且没有给出超时错误。关于这些问题没有大量的权威信息。主要是一堆 SO 和 github 问题。
将 Protractor 与 SystemJS 一起使用的正确方法是什么?
javascript - CucumberJS - 标记 Hooks 只执行某些场景?
我的功能文件目前是这样写的:
我将如何添加标记的钩子以仅执行与用户相关的场景。
我想我会在登录场景中添加@user1、@user2 标签,然后在 User1 场景中添加 @user1 标签,在 User2 场景中添加 @user2 标签。
但是我需要编写什么 javaScript 来制作这样的测试流程:
- 检查登录... (user1)
- 用户 1 应该能够...
- 检查登录... (user2)
- 用户 2 应该能够...
- 用户 2 应该无法...
也许我完全错了,每个用户都需要不同的功能文件?
任何建议都会很棒。
javascript - Cucumber.JS,通过调用先前定义的步骤场景来保持背景干燥,也就是在步骤中调用步骤
我希望能够在调用运行前一个场景中的步骤的场景之前运行背景。例如,我有一个创建用户并将其称为“创建用户”的场景。我想创建一个名为“重置密码”的新场景,它在其功能定义中使用“创建用户”作为背景。
例如,这是我的功能:
所以我希望能够从上面调用“我创建一个帐户”来在下面运行它:
在 Ruby 版本 Cucumber 中,他们能够从可行的步骤中调用步骤: https ://github.com/cucumber/cucumber/wiki/Calling-Steps-from-Step-Definitions
但是 Cumcumber 的 JavaScript 实现,他们拒绝实现这一点,我一生都无法弄清楚他们为什么要这样做: https ://github.com/cucumber/cucumber-js/issues/11
如何在整个项目中保持代码 DRY 并且不重复场景步骤代码?
javascript - 使用 Selenium 步骤定义从 CucumberJS 执行回调
我正在用 Selenium 和 PhantomJS 试用 CucumberJS。我已经使用这个 StackOverflow 答案作为指南成功地构建了一个 World 对象。
所以现在我正在测试一些基本的步骤定义,但对如何在步骤结束时执行回调有些困惑。这很好用:
驱动程序访问 Google.com,直到加载请求的文档后才会触发回调。但是我发现这个语法有点罗嗦,所以我想也许我可以直接传递callback
到then()
我的第一个承诺之后,就像这样:
然而,这失败console.log
了,似乎callback
. 这是输出:
这里发生了什么?我期待它callback
可以简单地传递给then()
函数并在承诺完成后执行。为什么将其包装在匿名函数中使其工作?