问题标签 [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.
ruby - 检查“命令”的输出应该包含 NilClass 的意外崩溃
为了将 Cucumber 用于命令行脚本,我按照提供的说明安装了 aruba gem。它在我的 Gemfile 中,我可以验证是否安装了正确的版本并且我已经包含
在“功能/env.rb”中
为了确保它有效,我编写了以下场景:
假设事情应该失败。
它确实失败了,但由于错误的原因而失败:
任何人都知道为什么这不起作用?这似乎是非常基本的阿鲁巴行为。
ruby - 使用 cucumber/aruba/timecop 测试命令行应用程序:如何注入上下文
以下场景几乎总结了我的问题:
它归结为When I run ruby -e "puts Time.now"
启动一个子进程,从而使我的所有Timecop.freeze
存根无效,因为它们只在主进程上工作。我需要以某种方式将当前上下文“注入”到正在运行的命令中,但我似乎无法提出任何建议。我在这里尝试一些不可能的事情吗?
步骤:
cucumber - 用黄瓜和 aruba 宣布 rake 标准输出
如何告诉 cucumber/aruba 显示 rake 命令的标准输出。以下代码对我不起作用
即使有@announce 标签,也不会输出命令“rake -version”的标准输出。
joomla - Joomla com_extplorer 不断重新加载页面
我习惯于在每个 joomla 项目中安装 explorer,总是一切顺利。这次在 extplorer 启动时,它继续以循环模式加载网页(试图更改管理员/组件中的权限,让 Aruba 安装 joomla 的三重奏)没有任何效果。有什么建议吗?
ruby - 为什么 cucumber with aruba 看不到我的程序的输出?
这两个示例都将转到 STDOUT,但 cucumber 只看到第一个。第二种情况失败:
特点:
步骤定义:
编码:
ruby - 使用 Aruba/Cucumber 写入标准输入
我在使用 Aruba 写入标准输入时遇到问题。我尝试了三种方法。
方法一:
为此,我收到以下错误:
Aruba 在字面上传递“<”,而 shell 会用管道做一些魔术。
方法二:
我收到以下错误:
我不知道,但我假设 cat 没有收到 EOF 字符,因此 cat 保持打开状态,等待进一步输入,然后再写入。有什么方法可以表示输入结束?
方法3:
这种方法有效,但通过 shell 进程传递输入似乎不是理想的解决方案。
我原以为这是一个相当标准的要求,但还没有成功让它工作。
有什么建议么?
谢谢。
ruby-on-rails - 可以从美沙酮的 App 类中调试/撬动吗?
我用美沙酮开始了一个空白项目,美沙酮是一个用于构建命令行应用程序的很棒的框架。唯一的问题是我无法从所在的App
类中进行调试bin/my_app
该类App
是您运行美沙酮时创建的文件。这是我尝试使用 pry 的方式
当我运行时,rake features
我可以告诉正在运行的进程正在尝试用 pry 做一些事情,因为它会暂停几秒钟。我收到以下错误,然后 rake/cucumber 中止。
我可以从黄瓜步骤、rspec 或任何其他地方很好地使用 pry,只是不能从这个App
类的任何地方使用。
一件非常有趣的事情是,如果我从控制台运行我的命令行应用程序,它将在 pry 所在的位置停止。使用黄瓜时,它只是不会被撬开。
我如何在运行时让应用程序与 pry 一起工作rake features
?
更新
抱歉,我应该澄清一下美沙酮是随 aruba 一起提供的。所以我的黄瓜场景看起来像这样
但是,如果我运行它,它将进入调试/撬动
ruby - 如何测试与 Web 服务通信的 Ruby 命令行程序?
我正在构建一个与 Web 服务通信的 Ruby 命令行程序。我正在使用 Cucumber 和 Aruba 来测试程序。问题是我需要控制从 Web 服务返回的数据;该程序会抓取用户评论流,因此随着新评论的添加,这可能会经常更改。我尝试使用 WebMock 模拟 Web 服务,但这不起作用,因为 Aruba 将命令行程序转为不受 WebMock 影响的单独进程(因此它仍然与真正的Web 服务通信)。
如何使用 Cucumber 测试该程序的输出?
编辑:Web 服务将流作为 JSON 数据返回。我已经捕获了用于测试的数据快照;简而言之,我正在寻找一种方法来替换我的静态数据来代替对 Web 服务的实际调用。
或者,如果有完全不同的方式来实现这个目标,我会全神贯注。
ruby - 如何使用具有大量输出的 Cucumber 测试 Ruby 命令行程序?
我正在构建一个 Ruby 命令行程序,并使用 Cucumber 和 Aruba 对其进行测试。Aruba 包含一些非常方便的匹配器,因此我可以使用文件中的几行来测试输出.feature
:
问题是我的程序可能包含几十行甚至上百行的输出;将所有这些都放在.feature
文件中会使阅读和导航变得更加困难(并且有点令人讨厌)。在这种情况下测试输出的推荐方法是什么?
ruby - 如何让 Aruba 扩展通配符
我正在编写一个简单的命令行 gem。
执行实际工作的库是使用 rspec 开发的,并且到目前为止有效。
我正在尝试使用 Aruba/Cucumber 测试命令行部分,但我遇到了一些奇怪的行为。
只是为了测试这个,我有一个二进制文件puts ARGV
,我有测试文件tmp/aruba
当我运行时,我会bundle exec gem_name tmp/aruba/*.*
看到 shell 扩展文件名的列表。
现在我的功能文件有:
最后一步显然会失败,但它向我展示了预期与实际输出之间的差异。而不是看到一个shell扩展文件名列表,我得到的只是"*.*"
因此,我只能拥有一个可以按预期工作的应用程序,但我无法通过测试。我可以使用“ . ”并从那里生成文件列表,但是我正在编写额外的生产代码只是为了让应用程序在测试中工作——我认为这不是正确的方法。而这一切都是因为外壳扩展没有发生。
如果您查看我的个人资料,您会发现 Ruby 不是我的主要包,请随时指出我可能错过的任何资源,但这只是我遗漏了什么,或者有人知道的预期行为如何解决?