黄瓜不测试任何定义的步骤

时间:2012-10-28 14:52:45

标签: ruby-on-rails ruby cucumber saas

我创建了一个包含以下内容的功能文件(AddMovie.feature)。

Feature: User can manually add movie

Scenario: Add a movie
 Given I am on the RottenPotatoes home page
 When I follow "Add new movie"
 Then I should be on the Create New Movie page
 When I fill in "Title" with "Men In Black"
 And I select "PG-13" from "Rating"
 And I press "Save Changes"
 Then I should be on the RottenPotatoes home page 
 And I should see "Men In Black"

当我执行黄瓜以使用命令测试它时:

bundle exec cucumber features/AddMovie.feature 

我得到了这个结果:

Using the default profile...
Feature:  User can manually add movie

      Scenario:  Add a movie                              # features/AddMovie.feature:3
        Given I am on the RottenPotatoes home page
        When I follow "Add new movie"
        Then I should be on the Create New Movie page
        When I fill in "Title" with "Men In Black"
        And I select "PG-13" from "Rating"
        And I press "Save Changes"
        Then I should be on the RottenPotatoes home page 
        And I should see "Men In Black"

    1 scenario (1 passed)
    0 steps

通常这种情况会失败,因为我没有添加“RottenPotatoes主页”的路径。如果你读到最后一行“0步”,那么黄瓜没有运行任何步骤。

我该如何解决这个问题?并使黄瓜测试AddMovie.feature中定义的步骤?

PS:当我使用命令cucumber features / Addmovies.feature时 我收到了这个错误

Using the default profile...
You have already activated activesupport 3.2.8, but your Gemfile requires activesupport 3.1.0. Using bundle exec may solve this. (Gem::LoadError)
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/runtime.rb:31:in `block in setup'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/runtime.rb:17:in `setup'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler.rb:107:in `setup'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/setup.rb:7:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
/home/ubuntu/Desktop/hw2_rottenpotatoes/config/boot.rb:6:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/home/ubuntu/Desktop/hw2_rottenpotatoes/config/application.rb:1:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/home/ubuntu/Desktop/hw2_rottenpotatoes/config/environment.rb:2:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-rails-1.3.0/lib/cucumber/rails.rb:7:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
/home/ubuntu/Desktop/hw2_rottenpotatoes/features/support/env.rb:7:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/rb_support/rb_language.rb:129:in `load'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/rb_support/rb_language.rb:129:in `load_code_file'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/runtime/support_code.rb:171:in `load_file'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/runtime/support_code.rb:82:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/runtime.rb:175:in `load_step_definitions'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/runtime.rb:40:in `run!'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/cli/main.rb:43:in `execute!'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/lib/cucumber/cli/main.rb:20:in `execute'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-1.2.1/bin/cucumber:14:in `<top (required)>'
/usr/local/bin/cucumber:19:in `load'
/usr/local/bin/cucumber:19:in `<main>'

当我添加了Bundle exec

时它就消失了

2 个答案:

答案 0 :(得分:0)

您是否已初始化数据库并运行“捆绑安装”?没有bundle exec的错误是因为你的bundle需要一个不同于当前安装版本的活动支持版本。

Rails鼓励约定优于配置。功能名称的约定是小写snake_case。

看看你的其他功能。黄瓜似乎以你调用它的方式执行所有功能。它可能是目录中其他内容的问题。

你有步骤文件吗?他们也可能是你的问题。

此外,Stackoverflow并不是真正提出有关家庭作业的问题的地方(有一个论坛)。

答案 1 :(得分:0)

我解决了这个问题,因为你的解决方案可以做到这一点

安装gem bundler最新

gem install bundler --no-ri --no-rdoc

然后运行cucumber features/find_movie_with_same_director.feature

如果仍然出现错误,请按照定义以下链接的步骤进行操作

Ruby on Rails - error when running cucumber: You have already activated activesupport 3.2.1, but your Gemfile requires activesupport 3.1.0.