Rspec2, Rails3, Authlogic: не могу запустить спецификации - PullRequest
0 голосов
/ 24 декабря 2010

Когда я делаю

rspec spec

в моем проекте rails, я получаю

No examples were matched. Perhaps {:if=>#<Proc:0x0000010126e998@/Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/configuration.rb:50 (lambda)>, :unless=>#<Proc:0x0000010126e970@/Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/configuration.rb:51 (lambda)>} is excluding everything?


Finished in 0.00004 seconds
0 examples, 0 failures

Теперь, похоже, что если бы я написал спецификацию, это сработало бы, но как толькоЯ пишу спецификацию (и я включаю spec_helper)

/Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/backward_compatibility.rb:20:in `const_missing': uninitialized constant Authlogic (NameError)
    from /{myapp}/app/models/user_session.rb:1:in `<top (required)>'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/engine.rb:138:in `block (2 levels) in eager_load!'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/engine.rb:137:in `each'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/engine.rb:137:in `block in eager_load!'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/engine.rb:135:in `each'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/engine.rb:135:in `eager_load!'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/application.rb:108:in `eager_load!'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/application/finisher.rb:41:in `block in <module:Finisher>'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `instance_exec'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `run'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/initializable.rb:50:in `block in run_initializers'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `each'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `run_initializers'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/application.rb:134:in `initialize!'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
    from /{myapp}/config/environment.rb:5:in `<top (required)>'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from /{myapp}/spec/spec_helper.rb:3:in `<top (required)>'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from /{myapp}/spec/controllers/pages_controller_spec.rb:1:in `<top (required)>'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/configuration.rb:388:in `load'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/configuration.rb:388:in `block in load_spec_files'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/configuration.rb:388:in `map'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/configuration.rb:388:in `load_spec_files'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/command_line.rb:18:in `run'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/runner.rb:55:in `run_in_process'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/runner.rb:46:in `run'
    from /Users/samliu/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rspec-core-2.3.1/lib/rspec/core/runner.rb:10:in `block in autorun'

Важная строка здесь выглядит так:

/core/backward_compatibility.rb:20:in `const_missing': uninitialized constant Authlogic (NameError)

Теперь, если бы это были рельсы 2.3.8, я бы простоconfig.gem "authlogic"

в environment.rb, в блоке кода инициализации.Тем не менее, среда rails 3 environment.rb выглядит иначе (блок кода конфигурации отсутствует, поэтому произвольное его включение приводит к ошибке, когда config не определен).Итак, мои вопросы

1) Должен ли я на самом деле поместить конфигурацию gem где-нибудь?Я посмотрел на https://github.com/trevmex/authlogic_rails3_example/ и, похоже, он никуда не положил.

2) Кто-нибудь знает, что я делаю неправильно с точки зрения rspec?Мой список драгоценных камней:

    *** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.3, 3.0.1, 3.0.0, 3.0.0.rc2, 2.3.4)
actionpack (3.0.3, 3.0.1, 3.0.0, 3.0.0.rc2, 2.3.4)
activemodel (3.0.3, 3.0.1, 3.0.0, 3.0.0.rc2)
activerecord (3.0.3, 3.0.1, 3.0.0, 3.0.0.rc2, 2.3.4)
activeresource (3.0.3, 3.0.1, 3.0.0, 3.0.0.rc2, 2.3.4)
activesupport (3.0.3, 3.0.1, 3.0.0, 3.0.0.rc2, 2.3.4)
arel (2.0.6, 1.0.1)
asdf (0.5.0)
authlogic (2.1.6, 2.1.3)
autotest (4.4.6, 4.4.1)
autotest-fsevent (0.2.4)
autotest-growl (0.2.9)
autotest-rails (4.1.0)
autotest-rails-pure (4.1.2)
bluecloth (2.0.9)
builder (2.1.2)
bundler (1.0.7, 1.0.2)
cgi_multipart_eof_fix (2.5.0)
commonwatir (1.6.2)
couchrest (0.33)
cri (1.0.1)
cucumber (0.4.4, 0.4.3, 0.3.11)
daemons (1.1.0, 1.0.10)
dependencies (0.0.7)
diff-lcs (1.1.2)
erubis (2.6.6)
fastercsv (1.5.0)
fastthread (1.0.7)
firewatir (1.6.2)
flay (1.4.0)
flog (2.2.0)
funfx (0.2.2)
gem_plugin (0.2.3)
gemsonrails (0.7.2)
giraffesoft-resource_controller (0.6.5)
haml (2.2.14)
hoe (2.3.3)
i18n (0.4.1)
jscruggs-metric_fu (1.1.5)
json_pure (1.1.9)
kramdown (0.12.0)
mail (2.2.13, 2.2.6.1)
memcache-client (1.8.5)
mime-types (1.16)
mojombo-chronic (0.3.0)
mongrel (1.1.5)
monk (0.0.7)
nanoc (3.1.5)
nanoc3 (3.1.5)
nokogiri (1.4.3.1, 1.4.0)
open4 (0.9.6)
polyglot (0.3.1, 0.2.9)
rack (1.2.1, 1.0.1)
rack-mount (0.6.13)
rack-test (0.5.6)
rails (3.0.0, 2.3.4)
rails3-generators (0.17.0, 0.14.0)
railties (3.0.3, 3.0.1, 3.0.0, 3.0.0.rc2)
rake (0.8.7)
relevance-rcov (0.9.2.1)
rest-client (1.0.3)
rspec (2.3.0, 2.0.0.rc, 1.2.9)
rspec-core (2.3.1, 2.0.0.rc)
rspec-expectations (2.3.0, 2.0.0.rc)
rspec-mocks (2.3.0, 2.0.0.rc)
rspec-rails (2.3.1, 2.0.0.rc, 1.2.9)
ruby_parser (2.0.4)
rubyforge (2.0.3)
rubygems-update (1.3.6, 1.3.5)
rvm (1.0.13)
s4t-utils (1.0.4)
safariwatir (0.3.7)
sexp_processor (3.0.3)
spork (0.7.3)
sqlite3-ruby (1.3.1, 1.2.5)
sys-uname (0.8.5)
term-ansicolor (1.0.4)
text-format (1.0.0)
text-hyphen (1.0.0)
thor (0.14.6, 0.14.3, 0.12.0)
treetop (1.4.8, 1.4.2)
tzinfo (0.3.23)
user-choices (1.1.6)
vlad (2.0.0)
vlad-git (2.1.0)
webrat (0.7.1, 0.6.0, 0.5.3)
xml-simple (1.0.12)
ZenTest (4.4.2)

Я использую ruby ​​1.9.2 и rails 3.0.3, установленные с использованием RVM на OSX 10.6 Snow Leopard.

Я просто хочу иметь возможность запускать свои спецификациикак раньше.В качестве отдельной проблемы автотест выдает ошибку о включении для автотеста / рыча, но я установил авто-рыча.Может быть, это проблема драгоценного камня?Я попытался сделать то же самое и получить ту же ошибку, когда дело доходит до использования моего сервера Ubuntu 10.04, хотя.

Gemfile

source 'http://rubygems.org'

gem 'rails', '3.0.3'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3-ruby', :require => 'sqlite3'

group :couch do
    gem 'couchrest'
end

group :user_auth do
  gem 'authlogic'
  gem "rails3-generators"
  gem 'facebooker'
end

group :markup do
  gem 'haml'
  gem 'sass'
end

group :testing do
  gem 'rspec-rails'
  gem 'rspec'
  gem 'webrat'
  gem 'cucumber'
  gem 'capybara'
  gem 'factory_girl'
  gem 'shoulda'
  gem 'autotest'
end

group :server do
  gem 'unicorn'
end
# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'

# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
#   gem 'webrat'
# end

Gemfile.lock

GEM
  remote: http://rubygems.org/
  specs:
    ZenTest (4.4.2)
    abstract (1.0.0)
    actionmailer (3.0.3)
      actionpack (= 3.0.3)
      mail (~> 2.2.9)
    actionpack (3.0.3)
      activemodel (= 3.0.3)
      activesupport (= 3.0.3)
      builder (~> 2.1.2)
      erubis (~> 2.6.6)
      i18n (~> 0.4)
      rack (~> 1.2.1)
      rack-mount (~> 0.6.13)
      rack-test (~> 0.5.6)
      tzinfo (~> 0.3.23)
    activemodel (3.0.3)
      activesupport (= 3.0.3)
      builder (~> 2.1.2)
      i18n (~> 0.4)
    activerecord (3.0.3)
      activemodel (= 3.0.3)
      activesupport (= 3.0.3)
      arel (~> 2.0.2)
      tzinfo (~> 0.3.23)
    activeresource (3.0.3)
      activemodel (= 3.0.3)
      activesupport (= 3.0.3)
    activesupport (3.0.3)
    arel (2.0.6)
    authlogic (2.1.6)
      activesupport
    autotest (4.4.6)
      ZenTest (>= 4.4.1)
    builder (2.1.2)
    capybara (0.4.0)
      celerity (>= 0.7.9)
      culerity (>= 0.2.4)
      mime-types (>= 1.16)
      nokogiri (>= 1.3.3)
      rack (>= 1.0.0)
      rack-test (>= 0.5.4)
      selenium-webdriver (>= 0.0.27)
      xpath (~> 0.1.2)
    celerity (0.8.6)
    childprocess (0.1.6)
      ffi (~> 0.6.3)
    couchrest (1.0.1)
      json (>= 1.4.6)
      mime-types (>= 1.15)
      rest-client (>= 1.5.1)
    cucumber (0.10.0)
      builder (>= 2.1.2)
      diff-lcs (~> 1.1.2)
      gherkin (~> 2.3.2)
      json (~> 1.4.6)
      term-ansicolor (~> 1.0.5)
    culerity (0.2.13)
    diff-lcs (1.1.2)
    erubis (2.6.6)
      abstract (>= 1.0.0)
    facebooker (1.0.75)
      json_pure (>= 1.0.0)
    factory_girl (1.3.2)
    ffi (0.6.3)
      rake (>= 0.8.7)
    gherkin (2.3.2)
      json (~> 1.4.6)
      term-ansicolor (~> 1.0.5)
    haml (3.0.25)
    i18n (0.5.0)
    json (1.4.6)
    json_pure (1.4.6)
    kgio (2.0.0)
    mail (2.2.13)
      activesupport (>= 2.3.6)
      i18n (>= 0.4.0)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.16)
    nokogiri (1.4.4)
    polyglot (0.3.1)
    rack (1.2.1)
    rack-mount (0.6.13)
      rack (>= 1.0.0)
    rack-test (0.5.6)
      rack (>= 1.0)
    rails (3.0.3)
      actionmailer (= 3.0.3)
      actionpack (= 3.0.3)
      activerecord (= 3.0.3)
      activeresource (= 3.0.3)
      activesupport (= 3.0.3)
      bundler (~> 1.0)
      railties (= 3.0.3)
    rails3-generators (0.17.0)
      railties (>= 3.0.0)
    railties (3.0.3)
      actionpack (= 3.0.3)
      activesupport (= 3.0.3)
      rake (>= 0.8.7)
      thor (~> 0.14.4)
    rake (0.8.7)
    rest-client (1.6.1)
      mime-types (>= 1.16)
    rspec (2.3.0)
      rspec-core (~> 2.3.0)
      rspec-expectations (~> 2.3.0)
      rspec-mocks (~> 2.3.0)
    rspec-core (2.3.1)
    rspec-expectations (2.3.0)
      diff-lcs (~> 1.1.2)
    rspec-mocks (2.3.0)
    rspec-rails (2.3.1)
      actionpack (~> 3.0)
      activesupport (~> 3.0)
      railties (~> 3.0)
      rspec (~> 2.3.0)
    rubyzip (0.9.4)
    sass (3.1.0.alpha.206)
    selenium-webdriver (0.1.2)
      childprocess (~> 0.1.5)
      ffi (~> 0.6.3)
      json_pure
      rubyzip
    shoulda (2.11.3)
    sqlite3-ruby (1.3.2)
    term-ansicolor (1.0.5)
    thor (0.14.6)
    treetop (1.4.9)
      polyglot (>= 0.3.1)
    tzinfo (0.3.23)
    unicorn (3.1.0)
      kgio (~> 2.0.0)
      rack
    webrat (0.7.2)
      nokogiri (>= 1.2.0)
      rack (>= 1.0)
      rack-test (>= 0.5.3)
    xpath (0.1.2)
      nokogiri (~> 1.3)

PLATFORMS
  ruby

DEPENDENCIES
  authlogic
  autotest
  capybara
  couchrest
  cucumber
  facebooker
  factory_girl
  haml
  rails (= 3.0.3)
  rails3-generators
  rspec
  rspec-rails
  sass
  shoulda
  sqlite3-ruby
  unicorn
  webrat

Ответы [ 2 ]

0 голосов
/ 28 декабря 2010

решаемая.Не совсем уверен, в чем проблема, но я удалил rubygems и ruby ​​из системы и переустановил только с помощью rvm - тогда я пошел с devise over authlogic.Кажется, что по какой-то причине authlogic не очень хорошо играл со мной.Ну хорошо.

0 голосов
/ 24 декабря 2010

Все ваши config.gem теперь находятся в вашем Gemfile. Так что надень это:

gem 'authologic'
...