Tag: 黄瓜

如何使用黄瓜获取javascript的代码覆盖率?

我正在使用gem’Simplecov ‘使用黄瓜生成ruby(.rb文件)的代码覆盖率,但我的UI代码是用JavaScript编写的 。 我如何使用Cucumber获得Javascript的代码覆盖率? 是否有任何gem或工具可用于获取Javascript的代码覆盖率? 请就此问题发表意见。

是否可以根据使用的标签(或不使用)在Cucumber步骤中执行不同的操作?

我在整个黄瓜测试过程中使用了相同的步骤。 我想根据调用function是否分配了标记(在本例中为@javascript)进行微小更改。 是否可以在步骤中测试标签的存在和名称以更改行为? (我意识到我可以创建不同的步骤,但这不是很干嘛?) 伪代码来解释我的追求 When /^I sign in as “(.*)\/(.*)”$/ do |email,password| step %{I go to the sign in page} step %{I fill in “user_email” with “#{email}”} step %{I fill in “user_password” with “#{password}”} if tag && tag == “@javascript” step %{I follow “LOG IN”} else step %{I press “LOG IN”} end end

在钩子之后访问黄瓜中的场景标题和示例

如何从After钩子中获取Ruby黄瓜测试中的当前Example ? 我可以使用下面的代码获得标题。 我的Scenario有几个Examples 。 我可以访问当前正在测试的Example吗? function文件 Scenario Outline: Successful login with primary accounts Given I start on the login page When I log into Overview page with “” Then I am on the Overview page Examples: | acct | | account1 | | account2 | 钩后 After do |scenario| scenario.scenario_outline.title # will give me […]

FactoryGirl:工厂未注册:user(ArgumentError)

使用FactoryGirl以正确的顺序获取所有鸭子很麻烦。 设置一个简约的rails应用程序(3.0.11),factory_girl_rails(1.4.0),factory_girl(2.3.2)和cucumber-rails(1.2.1)以及ruby-1.8.7-p352。 黄瓜测试是: Feature: a Scenario: test factory-girl Given the following user exists: | name | email | | Brandon | brandon@example.com | 结果如下: cucumber Using the default profile… “Adam Advertiser” “a@b.com” # Feature: a Scenario: test factory-girl # features/users.feature:2 Given the following user exists: # factory_girl-2.3.2/lib/factory_girl/step_definitions.rb:100 | name | email | | Brandon | […]

未初始化的常量(NameError)问题 – 如何包含类?

这是我的目录结构: /features/ninja.feature /features/step_definitions/ninja_steps.rb /src/ninja.rb 当我跑 cucumber 在我的项目的根目录中,我得到一个uninitialized string constant Ninja (NameError)错误。 我已经确定它是由我的ninja_steps.rb文件中的这一行引起的: @ninja = Ninja.new :belt_level => belt_level 在我的ninja.rb文件中: class Ninja def initialize (belt_level) end end 我是否require在我的ninja_steps.rb文件的顶部添加某种require ,或者什么? 我似乎无法弄清楚如何做到这一点,以便它不会爆炸。

使用Cucumber – Selenium Ruby测试报告输出

我希望从我的Cucumber测试中获得报告输出。 到目前为止,我可以提出以下内容: cucumber features/feature_name.feature -f json -o C:/Reports 这只会在测试结束时产生一个json报告,你无法像黄瓜一样发现它们的结果。 我是否可以同时执行这两项操作,以便在cmd中看到绿色/红色步骤并在结束时获取json报告? 谢谢

黄瓜的路由问题

我正在使用rails 3和黄瓜,除了这个小问题外,一切顺利 Given I am on the “edit automobile” page No route matches {:controller=>”automobiles”, :action=>”edit”} (ActionController::RoutingError) 现在路径在paths.rb中设置为edit_automobile_path 在routes.rb我有汽车作为资源,我搭建了它 所以请告诉我我错过了什么,显然路线是定义和匹配的,因为我跑了耙路线并看到了路线。 请指出我正确的方向

使用/.*?/有什么好处

在一些Rails代码(黄瓜function的步骤定义,javascripts, rails_admin gem)中,我发现了这个正则表达式部分: string =~ /some regexp.+rules should match “(.*?)”/i 我对正则表达式有一些了解,我知道*和? 符号类似,但星号表示zero and more ,问号表示could be present or could be not 。 因此,使用符号组附近的问号使其在被测试的短语中不存在。 什么是……嗯…在非必需已经组附近使用它的技巧(跳过要求是使用星号afaik)?

如何在不同版本的gem之间切换?

我在本地计算机上安装了三个版本的机架( rack (1.4.1, 1.3.6, 1.3.5) )。 对于某些gem(如Cucumber ),它需要激活较低版本的rack ? 我试过bundle但没有好处。 执行时, cucumber仍将使用系统版本1.4.1的激活机架。 Bundle指定应安装哪个gem但不确保激活哪个gem 。 我怎么能激活某个版本的rack ?

使用Cucumber与模块化Sinatra应用程序

我正在使用Sinatra构建一个中型应用程序,当我有一个app.rb文件并且我在Github上遵循Aslak的指导时,一切都很顺利: http://wiki.github.com/aslakhellesoy/cucumber/sinatra 随着应用程序变得更大并且app.rb文件开始膨胀,我使用Sinatra :: Base将很多位重构为“中间件”样式模块,使用机架文件映射事物(config.ru )等 该应用程序运行良好 – 但我的规格爆炸,因为没有更多的app.rb文件供webrat运行(如上面的链接中所定义)。 我试图找到如何处理这个问题的例子 – 我认为我只是不习惯Cuke的内部胆量,因为我找不到一种方法来覆盖所有应用程序。 我试着指向“config.ru”而不是app.rb – 但这不起作用。 我最终做的 – 完全是hackish – 是在我的支持目录中有一个单独的app.rb文件,它有所有需要的东西,所以我至少可以测试模型的东西。 我也可以在那里指定路线 – 但这根本不是我想做的。 所以 – 问题是:我怎样才能让Cucumber正确使用模块化应用程序方法?