问题标签 [aruba]

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

ruby - 检查“命令”的输出应该包含 NilClass 的意外崩溃

为了将 Cucumber 用于命令行脚本,我按照提供的说明安装了 aruba gem。它在我的 Gemfile 中,我可以验证是否安装了正确的版本并且我已经包含

在“功能/env.rb”中

为了确保它有效,我编写了以下场景:

假设事情应该失败。

它确实失败了,但由于错误的原因而失败:

任何人都知道为什么这不起作用?这似乎是非常基本的阿鲁巴行为。

0 投票
2 回答
969 浏览

ruby - 使用 cucumber/aruba/timecop 测试命令行应用程序:如何注入上下文

以下场景几乎总结了我的问题:

它归结为When I run ruby -e "puts Time.now"启动一个子进程,从而使我的所有Timecop.freeze存根无效,因为它们只在主进程上工作。我需要以某种方式将当前上下文“注入”到正在运行的命令中,但我似乎无法提出任何建议。我在这里尝试一些不可能的事情吗?


步骤:

0 投票
1 回答
298 浏览

cucumber - 用黄瓜和 aruba 宣布 rake 标准输出

如何告诉 cucumber/aruba 显示 rake 命令的标准输出。以下代码对我不起作用

即使有@announce 标签,也不会输出命令“rake -version”的标准输出。

0 投票
1 回答
998 浏览

joomla - Joomla com_extplorer 不断重新加载页面

我习惯于在每个 joomla 项目中安装 explorer,总是一切顺利。这次在 extplorer 启动时,它继续以循环模式加载网页(试图更改管理员/组件中的权限,让 Aruba 安装 joomla 的三重奏)没有任何效果。有什么建议吗?

0 投票
1 回答
1119 浏览

ruby - 为什么 cucumber with aruba 看不到我的程序的输出?

这两个示例都将转到 STDOUT,但 cucumber 只看到第一个。第二种情况失败:

特点:

步骤定义:

编码:

0 投票
2 回答
1197 浏览

ruby - 使用 Aruba/Cucumber 写入标准输入

我在使用 Aruba 写入标准输入时遇到问题。我尝试了三种方法。

方法一:

为此,我收到以下错误:

Aruba 在字面上传递“<”,而 shell 会用管道做一些魔术。

方法二:

我收到以下错误:

我不知道,但我假设 cat 没有收到 EOF 字符,因此 cat 保持打开状态,等待进一步输入,然后再写入。有什么方法可以表示输入结束?

方法3:

这种方法有效,但通过 shell 进程传递输入似乎不是理想的解决方案。

我原以为这是一个相当标准的要求,但还没有成功让它工作。

有什么建议么?

谢谢。

0 投票
2 回答
332 浏览

ruby-on-rails - 可以从美沙酮的 App 类中调试/撬动吗?

我用美沙酮开始了一个空白项目,美沙酮是一个用于构建命令行应用程序的很棒的框架。唯一的问题是我无法从所在的App类中进行调试bin/my_app

该类App是您运行美沙酮时创建的文件。这是我尝试使用 pry 的方式

当我运行时,rake features我可以告诉正在运行的进程正在尝试用 pry 做一些事情,因为它会暂停几秒钟。我收到以下错误,然后 rake/cucumber 中止。

我可以从黄瓜步骤、rspec 或任何其他地方很好地使用 pry,只是不能从这个App类的任何地方使用。

一件非常有趣的事情是,如果我从控制台运行我的命令行应用程序,它将在 pry 所在的位置停止。使用黄瓜时,它只是不会被撬开。

我如何在运行时让应用程序与 pry 一起工作rake features

更新

抱歉,我应该澄清一下美沙酮是随 aruba 一起提供的。所以我的黄瓜场景看起来像这样

但是,如果我运行它,它将进入调试/撬动

0 投票
3 回答
499 浏览

ruby - 如何测试与 Web 服务通信的 Ruby 命令行程序?

我正在构建一个与 Web 服务通信的 Ruby 命令行程序。我正在使用 Cucumber 和 Aruba 来测试程序。问题是我需要控制从 Web 服务返回的数据;该程序会抓取用户评论流,因此随着新评论的添加,这可能会经常更改。我尝试使用 WebMock 模拟 Web 服务,但这不起作用,因为 Aruba 将命令行程序转为不受 WebMock 影响的单独进程(因此它仍然与真正的Web 服务通信)。

如何使用 Cucumber 测试该程序的输出?


编辑:Web 服务将流作为 JSON 数据返回。我已经捕获了用于测试的数据快照;简而言之,我正在寻找一种方法来替换我的静态数据来代替对 Web 服务的实际调用。

或者,如果有完全不同的方式来实现这个目标,我会全神贯注。

0 投票
4 回答
1917 浏览

ruby - 如何使用具有大量输出的 Cucumber 测试 Ruby 命令行程序?

我正在构建一个 Ruby 命令行程序,并使用 Cucumber 和 Aruba 对其进行测试。Aruba 包含一些非常方便的匹配器,因此我可以使用文件中的几行来测试输出.feature

问题是我的程序可能包含几十行甚至上百行的输出;将所有这些都放在.feature文件中会使阅读和导航变得更加困难(并且有点令人讨厌)。在这种情况下测试输出的推荐方法是什么?

0 投票
1 回答
242 浏览

ruby - 如何让 Aruba 扩展通配符

我正在编写一个简单的命令行 gem。

执行实际工作的库是使用 rspec 开发的,并且到目前为止有效。

我正在尝试使用 Aruba/Cucumber 测试命令行部分,但我遇到了一些奇怪的行为。

只是为了测试这个,我有一个二进制文件puts ARGV,我有测试文件tmp/aruba

当我运行时,我会bundle exec gem_name tmp/aruba/*.*看到 shell 扩展文件名的列表。

现在我的功能文件有:

最后一步显然会失败,但它向我展示了预期与实际输出之间的差异。而不是看到一个shell扩展文件名列表,我得到的只是"*.*"

因此,我只能拥有一个可以按预期工作的应用程序,但我无法通过测试。我可以使用“ . ”并从那里生成文件列表,但是我正在编写额外的生产代码只是为了让应用程序在测试中工作——我认为这不是正确的方法。而这一切都是因为外壳扩展没有发生。

如果您查看我的个人资料,您会发现 Ruby 不是我的主要包,请随时指出我可能错过的任何资源,但这只是我遗漏了什么,或者有人知道的预期行为如何解决?