0

Rails アプリケーションで Cucumber を実行しようとすると、次のエラーが発生し続けます。

> superclass mismatch for class Point (TypeError)

このエラーからの膨大なスタック トレースがありますが、要件の欠落以外に特定のことを示しているわけではありません。トレースは次のとおりです。


レーキ機能 (/Users/rob/blue/blue_web 内) /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -I "/Users/rob/.gem/ruby/1.8/gems/ cucumber-0.3.102/lib:lib" "/Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/cucumber" --color --tags ~@wip --strict --format pretty --drb features/manage_logins.feature 警告: DRb サーバーが実行されていません。機能をローカルで実行する: クラス ポイントのスーパークラスの不一致 (TypeError) /Users/rob/blue/blue_web/app/models/point.rb:1 /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in polyglot_original_require' /Users/rob/.gem/ruby/1.8/gems/polyglot-0.2.9/lib/polyglot.rb:70:in require' /Users/rob/.gem/ruby/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:158:in require' /Users/rob/.gem/ruby/1.8/gems/activesupport-2.3.4 /lib/active_support/dependencies.rb:265:in require_or_load' /Users/rob/.gem/ruby/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:224:in depend_on' /Users/rob/.gem/ruby/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:136:in require_dependency' /Users/rob/.gem/ruby/1.8/gems/rails-2.3.4/lib/initializer.rb:414:in load_application_classes' /Users/rob/.gem/ruby/1.8/gems/rails -2.3.4/lib/initializer.rb:413:in each' /Users/rob/.gem/ruby/1.8/gems/rails-2.3.4/lib/initializer.rb:413:in load_application_classes' /Users/rob/.gem/ruby/1.8/gems/rails-2.3.4/lib/initializer.rb:411:in each' /Users/rob/.gem/ruby/1.8/gems/rails-2.3.4/lib/initializer.rb:411:in load_application_classes' /Users/ rob/.gem/ruby/1.8/gems/rails-2.3.4/lib/initializer.rb:197:in process' /Users/rob/.gem/ruby/1.8/gems/rails-2.3.4/lib/initializer.rb:113:in send' /Users/rob/.gem/ruby/1.8/gems/rails-2.3.4/lib/ initializer.rb:113:in run' /Users/rob/blue/blue_web/config/environment.rb:16 /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' polyglot_original_require' /Users/rob/.gem/ruby/1.8/gems/polyglot-0.2.9/lib/polyglot.rb:70:in /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in require' ./features/support/env.rb:7 /Library/Ruby/Gems/1.8/gems /spork-0.7.2/lib/spork.rb:14:in prefork' ./features/support/env.rb:4 /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31: のpolyglot_original_require' /Users/rob/.gem/ruby/1.8/gems/polyglot-0.2.9/lib/polyglot.rb:70:in require' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/../lib/cucumber/rb_support/rb_language.rb:107:in load_code_file' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/../lib/cucumber/rb_support/rb_language.rb:48:in step_definitions_for' /Users/rob/.gem/ ruby/1.8/gems/cucumber-0.3.102/bin/../lib/cucumber/step_mother.rb:90:in load_code_file' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/../lib/cucumber/step_mother.rb:82:in load_code_files' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/ bin/../lib/cucumber/step_mother.rb:81: in each' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/../lib/cucumber/step_mother.rb:81:in load_code_files' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/../lib/cucumber/cli/main .rb:46:in execute!' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/../lib/cucumber/cli/main.rb:24:in execute' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/cucumber:9 レーキが中止されました! コマンドがステータス (1) で失敗しました: [/System/Library/Frameworks/Ruby.framework/...]

4

1 に答える 1

1

この問題に対する答えが見つかりました。それは、クラス名が mySQL geoSpatial プラグインと私のスキーマと競合することでした。

ポイントという名前のクラスがあり、すべてが幸せでした。次に、(非常にクールな) geoSpatial プラグインを追加して、mySQL のジオ インデックス機能を使用しました。このプラグインは Point クラスも定義します。

この競合により、Cucumber が失敗していました。

自分のアプリケーションでこのエラーが発生している場合は、重複を探してください。

于 2009-09-26T22:11:38.303 に答える