草庐IT

calabash-cucumber

全部标签

ruby-on-rails - cucumber + Selenium 随机失败

我的selenium测试喜欢随机失败。作为一个例子,我有这个场景Scenario:IshouldbeabletoeditauserGivenIcreatedauserwiththelogin"test@example.com"AndIamviewingtheuserwithlogin"test@example.com"ThenIshouldsee"Editthisuser"WhenIclick"Editthisuser"ThenIshouldbeeditingtheuserwithlogin"test@example.com"WhenIpress"Update"ThenIshouldb

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

我正在构建一个Ruby命令行程序,并使用Cucumber和Aruba对其进行测试。Aruba包含一些非常方便的匹配器,因此我可以使用.feature文件中的几行来测试输出:WhenIrun`myprogram`Thenitshouldpasswith:"""myprogramoutput"""问题是我的程序可能包含几十行甚至几百行输出;将所有这些都放在.feature文件中会使阅读和导航变得更加困难(并且有点令人讨厌)。在这种情况下测试输出的推荐方法是什么? 最佳答案 简短的回答是:你不应该那样做。Cucumber测试应该面向用户且

ruby-on-rails - 新手 Cucumber 挂机 $?.success?没有方法错误

所以我在“PragmaticCucumber”中的第一个项目中,我在我的步骤定义中遇到了一个未定义的方法错误。错误来自$?.success?。不用说我很困惑。我错过了gem还是什么?这是步骤定义Given/^theinput"(.*?)"$/do|input|@input=inputendWhen/^thecalculatorisrun$/do@output='rubycalc.rb#{@input}'raise('Commandfailed!')unless$?.success?#$?.success?isfailing.lookthatup.endThen/^theoutputsh

ruby - 如何使用 Cucumber Ruby Automation 打印浏览器控制台日志?

对于CucumberCapybara测试自动化中的任何错误,您能否帮助打印在Web浏览器中生成的控制台日志?我正在使用PhantomJSwebdriver,如下所示:Capybara::Selenium::Driver.new(app,:browser=>:phantomjs,desired_capabilities:{'phantomjs.cli.args'=>['--ignore-ssl-errors=yes']我想捕获浏览器JS控制台日志并在我需要自动化执行时打印它 最佳答案 因为你使用的是Selenium,你可以试试page

ruby-on-rails - 如何为 "edit"路径创建 Cucumber 步骤定义?

我正在尝试学习如何使用Cucumber并使用以下场景创建步骤(我有一个名为“Vegetable”的模型,并且我添加了一个名为“color”的新属性):Scenario:addcolortoexistingvegetableWhenIgototheeditpagefor"Potato"AndIfillin"Color"with"Brown"AndIpress"UpdateVegetableInfo"Thenthecolorof"Potato"shouldbe"Brown"我目前正在使用“training-wheels”,所以我有一个网络步骤(web_steps.rb):When/^(?:

ruby - 用 Cucumber 进行组合测试

我有一个场景大纲,其中包含两个不同的变量。一个变量有大约20个不同的值,另一个变量有3个。我需要能够测试每个组合,并且我需要在单独的场景中测试每个组合,因为它们必须独立测试。目前,我只是手写出来(它们在示例中是整数,但在我的测试中不是):ScenarioOutline:TestmystuffGivenfirstvarisAndsecondvarisWhenIdostuffThengoodstuffshouldhappenExamples:|var_a|var_b||1|1||1|2||1|3||2|1||2|2|etc...问题:有没有一种方法可以在不必写出每个组合的情况下运行它?以后

ruby - 为什么我在 Cucumber "Around"中看不到抛出的异常?

我有一组在构建服务器上运行的cucumber测试。我经常想要比服务器直接提供的反馈更快的反馈,所以我在运行时观察控制台输出。我想要一种用单个搜索词识别任何失败测试的方法,所以我修改了我们的Around以在任何异常上打印“失败测试”,但Ruby似乎没有将异常返回给周围。我已经通过在begin...end之后放置语句来验证这一点。有谁知道为什么会发生这种情况,或者有什么方法可以包装从失败的测试中抛出的任何异常?Around()do|scenario,block|beginTimeout.timeout(0.1)doblock.callendrescueTimeout::Error=>epu

ruby - cucumber 数据工厂,watir

我们有一个独立的测试自动化团队,只负责自动化watir+cucumber功能测试用例。他们的代码库不与其他开发人员正在开发的Rails应用程序相关联,而是保持独立。到目前为止,我们已经自动化了几个测试用例,现在我们遇到的问题是,一些(watir/cucumber规范)测试用例需要一些数据预先存在到db中,所以它(测试用例)应该只关注问题stmt,而不是自行创建任何数据需求。例如,假设它必须检查评级是否适用于帖子,它要求帖子对象应该预先存在并且它只检查评级。而不是创建第一个帖子对象然后检查其评分。这里最好的方法是什么?就像我们有用于Rails单元测试的fixtures和factory-g

ruby - 如何使用 Cucumber 测试 DelayedJob?

我们使用DelayedJob来运行一些长时间运行的进程,并希望使用Cucumber/Webrat进行测试。目前,我们在Ruby线程中调用Delayed::Job.work_off以在后台完成工作,但正在寻找更健壮的解决方案最好的方法是什么?谢谢。 最佳答案 我在Delayed:Job.work_off方法中看到的主要问题是,您在Cucumber场景中明确说明了属于系统内部的东西。混合这两个问题有悖于功能测试的精神:WhenIclicksomelink#SomeoperationislaunchedinthebackgroundAnd

ruby - 将 rspec 和 cucumber 与 ruby​​ 和 rails 一起使用时堆栈级别太深 (SystemStackError)

这是一个关于在使用Ruby和Rails时遇到堆栈级别太深(SystemStackError)时我应该使用什么调试策略的问题。我在使用rspec或cucumber时看到这些错误perrys-MacBook-Pro:pcperry_mac$cucumberstackleveltoodeep(SystemStackError)/Users/perry_mac/.rvm/gems/ruby-1.9.3-p327/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:240perrys-MacBook-Pro:pcperry_m