我是新来的。我希望问题的准确性是正确的。 我没有找到here和this solution帮助的答案。
我在RubyMine中使用Ruby / Watir / Cucumber创建了一个Web应用程序的自动测试。功能正常 - 测试通过(步骤定义正常)。不幸的是,我无法在NetBeans中运行相同的功能。看起来我在将步骤与步骤定义联系起来时遇到了问题。
Windows 7
NetBeans IDE 8.0
NenBeans插件:Cetriolo v 1.0
NetBeans插件:Cucumber Features v 1.8.2
Ruby 1.9.3
创业板:watir-webdriver 0.6.10
创业板:黄瓜1.3.15
GEM:Page-object 1.0
项目结构:
Picture_of_project_structure
功能如下:
1 Feature: Adoptin Puppies
2
3 As a puppy lover
4 I want to adopt puppies
5 So they can chew my furniture
6
7 Background:
8 Given I an on the adoption site
9
10 Scenario: Adopting one puppy
11 When I click the View Details of puppy 1 button
12 And I click the Adopt Me button
13 And I click the Complete the Adoption button
/..../
在功能文件 Given,When,And,And, ..下划线,并且注释没有这些步骤的步骤定义。
在 Steps窗口中没有看到任何实现(由插件启用):
Image_of_step_window_without_step_implementation
当我使用Cucumber图标(由插件启用)运行adopt_puppies.feature时,执行后台和步骤给我一个采用网站。我的意思是 - 网络浏览器打开并转到正确的地址然后关闭(这发生4次 - 每4个场景一次)。输出是:
Output of running [cmd, /C, cucumber, -r, C:\Users\t4f\NetBeansProjects\test_puppies_copy\lib\features, C:\Users\t4f\NetBeansProjects\test_puppies_copy\lib\features\adopting_puppies.feature, -s] is:
--- START ---
*** WARNING: You must use ANSICON 1.31 or higher (https://github.com/adoxa/ansicon/) to get coloured output on Windows
Feature: Adoptin Puppies
As a puppy lover
I want to adopt puppies
So they can chew my furniture
Background:
Given I an on the adoption site
dupa
Scenario: Adopting one puppy
When I click the View Details of puppy 1 button
And I click the Adopt Me button
/...steps written here like in feature file.../
4 scenarios (4 undefined)
43 steps (30 skipped, 9 undefined, 4 passed)
2m35.034s
You can implement step definitions for undefined steps with these snippets:
When(/^I click the View Details of puppy (\d+) button$/) do |arg1|
pending # express the regexp above with the code you wish you had
end
当我按照this answer并使用以下命令在cmd窗口中运行该功能时
cucumber lib/features/adopting_puppies.feature -r lib/features
结果是一样的(浏览器打开,页面访问,浏览器关闭),但至少我可以看到adopt_puppy_steps.rb是'使用'(输出是相同的,但有评论后每一行otuput):
/.../
Background: # lib\features\adopting_puppies.feature:7
Given I an on the adoption site # lib/features/step_definitions/adopting_pup
py_steps.rb:1
dupa
Scenario: Adopting one puppy # lib\features\adoptin
g_puppies.feature:10
When I click the View Details of puppy 1 button # lib\features\adoptin
g_puppies.feature:11
And I click the Adopt Me button # lib/features/step_de
finitions/adopting_puppy_steps.rb:17
/.../
任何人,请告诉我为什么使用NetBeans无法识别步骤定义?
由于'Given'被成功执行,并且RubyMine没有所有步骤的问题,我很困惑(特别是因为我对所有这些Ruby / Watir / Cucumber的东西都不熟悉。
<登记/>
我的RubyMine评估在5天内结束,我仍然想学习:)
答案 0 :(得分:0)
当我第一次使用Rubymine并且解决方案在目录设置中时,我遇到了与Rubymine类似的问题。步骤定义文件夹位于我项目中错误的目录树下,因此当它试图在默认位置找到它们时,它什么也没找到。
更具体地说,我的step_definition文件夹是在我的功能文件文件夹内的主项目目录INSTEAD下创建的。因此,当rubymine试图找到一个名为step_definitions的文件时,它看起来相对文件(功能)没有找到一个,所以它告诉我步骤没有定义,尽管它们显然在另一个文件夹中。一旦我移动文件,它工作正常。
我对netbeans一无所知,但默认情况下,它可能会查找与rubymine不同的位置以查找这些步骤定义。
您的文件结构看起来是正确的,但我不熟悉netbeans是否在步骤定义的不同位置查找。
您是否尝试在接受答案下方的答案中按照建议here删除Cucumber功能插件?
如果不起作用,请查看默认情况下是否可以找到netbeans查找其step_definitions文件夹的位置。