2012-03-31 16 views
6

मेरे पास सिनात्रा आवेदन है और मुझे अपने आवेदन की जांच करने की आवश्यकता है।ढेर स्तर बहुत गहरा (SystemStackError)

सुविधाओं/support/env.rb:

require_relative "../../application" 

require "capybara" 
require "capybara/cucumber" 
require "rspec" 

World do 
    Capybara.app = Application 

    include Capybara::DSL 
    include RSpec::Matchers 
end 

सुविधाओं/one.feature:

Feature: Test homepage 
    In order to make sure people can open my site 
    I want to check it opened 

    Scenario: Opening first page 
    Given I have opened homepage  
    Then I should see site header 

टेस्ट यह:

cucumber features\one.feature 

परिणाम:

Feature: Test homepage 
    In order to make sure people can open my site 
    I want to check it opened 

    Scenario: Opening first page # features\one.feature:5 
    Given I have opened homepage # features\one.feature:6 
    Then I should see site header # features\one.feature:7 

1 scenario (1 undefined) 
2 steps (2 undefined) 
0m0.006s 

You can implement step definitions for undefined steps with these snippets: 

Given /^I have opened homepage$/ do 
    pending # express the regexp above with the code you wish you had 
end 

Then /^I should see site header$/ do 
    pending # express the regexp above with the code you wish you had 
end 

ठीक है, मैं बनाया है सुविधाओं/step_definitions/agenda_steps.rb:

Given /^I have opened homepage$/ do 
    pending # express the regexp above with the code you wish you had 
end 

Then /^I should see site header$/ do 
    pending # express the regexp above with the code you wish you had 
end 

टेस्ट यह:

cucumber features\one.feature 

परिणाम:

Feature: Test homepage 
    In order to make sure people can open my site 
    I want to check it opened 

    Scenario: Opening first page # features\one.feature:5 
    Given I have opened homepage # features/step_definitions/agenda_steps.rb:1 
C:/Ruby193/bin/cucumber:19: stack level too deep (SystemStackError) 

क्यों और कैसे क्या मैं इसे ठीक कर सकता हूँ?

अपडेट किया गया: समस्या अगर मैं इस तरह मेरे env.rb पुनर्लेखन गायब:

require_relative "../../application" 

require "capybara" 
require "capybara/cucumber" 
require "rspec" 


Capybara.app = Application 
#World do 
# Capybara.app = Application 
# 
# include Capybara::DSL 
# include RSpec::Matchers 
#end 
+0

आप अपने Gemfile.lock भी या उससे अधिक तो क्या ककड़ी, capybara के संस्करणों और RSpec आप – Dan

+0

उपयोग कर रहे हैं मैं अपने Gemfile.lock यहाँ पोस्ट किया है पोस्ट कर सकते हैं: http://pastebin.com/8Ni5MSdj – demas

+0

@Jacob, Rspec है कैपिबरा बस वेब चालक से बात करते हुए दावा के लिए। कहा जा रहा है कि, आपको निश्चित रूप से रुपेक और कैपिबारा (और शायद सेलेनियम दोनों) की आवश्यकता है –

उत्तर

0

मुझे विश्वास है कि केवल Capybara.app = Applicationनहीं अपने उदाहरण में शो के रूप में World अंदर घोषित किया जाना चाहिए।

ENV['RACK_ENV'] = 'test' 
require File.join(File.dirname(__FILE__), '..', '..', 'rvs.rb') 

require 'capybara' 
require 'capybara/cucumber' 
require 'rspec' 
require 'r18n-core' 

Capybara.app = RVS 

class RVSWorld 
    include R18n::Helpers 
    include Capybara::DSL 
    include RSpec::Expectations 
    include RSpec::Matchers 
end 

World do 
    RVSWorld.new 
end 

आप देख सकते हैं RVSWorld वर्ग केवल बयान जो आवश्यक मॉड्यूल शामिल हैं:

तो यहाँ मेरा env.rb काम कर रहा है।

1

मैं एक ही समान रूप से error..as

stack level too deep (SystemStackError) 
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/cucumber-1.1.4/lib/cucumber/core_ext/instance_exec.rb:73.. 

मैं env.rb की पहली पंक्ति पर require 'cucumber/rails' जोड़ा ... जो पहले लोड हो लग रही थी।

अब मैं उस त्रुटि का सामना नहीं कर रहा हूं।

संबंधित मुद्दे