Cucumber Rubymine无法找到位于宝石内部的步骤定义
Rubymine返回此场景中两个步骤的“未定义步骤参考”警报。这个黄瓜测试是这样的:Cucumber Rubymine无法找到位于宝石内部的步骤定义,cucumber,watir,rubymine,Cucumber,Watir,Rubymine,Rubymine返回此场景中两个步骤的“未定义步骤参考”警报。这个黄瓜测试是这样的: @smoke Scenario: Update profile Smoke test. Given I navigate to this test webpage And In Test, I click the element of "test_link" 这两个步骤位于gem内部,遵循以下结构: gemname/lib/features/step_definitions/web_
@smoke
Scenario: Update profile Smoke test.
Given I navigate to this test webpage
And In Test, I click the element of "test_link"
这两个步骤位于gem内部,遵循以下结构:
gemname/lib/features/step_definitions/web_shared_steps.rb
And (/^I navigate to this (.*?)$/) do |web|
web = '$' + web.downcase.gsub(' ', '_')
@browser.goto eval(web)
end
Then (/In (.*?), I click the element of "(.*?)"$/) do |page, element|
on_page(page + 'Page').click_element(element)
end
方法也在gem中,遵循以下结构:
gemname/lib/basic_methods.rb
module BasicMethods
include PageObject
include PageObject::PageFactory
def click_element (element)
element = element.downcase.gsub(' ', '_')
wait_until{send("#{element}?")}
select = send("#{element}_element")
wait_until{select.visible?}
select.click
end
因此,如果我使用命令行“bundle exec cumber”执行,测试就能够在gem中找到步骤定义,在gem中找到方法,并且一切都正确执行
但是,对于场景的两个步骤,Rubymine仍然发出“未定义步骤参考”的警报,我无法在这些步骤中“单击命令”以导航到步骤定义
问题:由于测试正在进行,如何才能“告诉”Rubymine它必须在哪里搜索步骤定义的文件夹/位置?我没有Rubymine,所以我无法验证这个答案,但这听起来与我在Vim下使用Syntastic时遇到的问题非常相似 尝试创建名为
features/support/external.rb的文件,其中包含:
require "lib/features/step_definitions/web_shared_steps.rb"
实际上,它不必被称为external.rb
,它可以被称为除env.rb
之外的任何东西
我猜Rubymine用--dry run
选项调用cucumber来生成警告。有关详细信息,请参阅。尝试将gem源代码放在您的计算机上,然后将其添加到您的gem文件中
gem'gem',:path=>path/to/gem source'
我在尝试使用自己的宝石叉时遇到了类似的问题
当我使用gem'my gem',:git=>'my repo.git'
时,我遇到了与您相同的问题,但通过使用:path
我让rubyMine识别了我的步骤定义
我需要在生产环境中切换回:git
,但至少我有一个适合我的开发环境的解决方案。gem中的步骤定义是不寻常的。可能有助于说明gem如何需要步骤定义。为了让他们工作,除了把宝石放进你的Gemfile中,你还需要做什么吗?很抱歉没有早点回答。是的,只需下载gem,就可以获取步骤定义。问题是我的IDE:Rubymine。他们有一些“硬编码的东西”,只允许少数著名的gem识别gems中包含的步骤定义。对于其余的Gem,步骤定义显示为“不存在”,即使它存在并且一切正常。我打赌这将对JetBrains提出一个很好的支持请求。这对我来说很有效,但不是最佳的,我必须记住每次提交编辑Gem文件之前的时间