【问题标题】:Type Error running feature in Rail's CucumberRail's Cucumber 中的类型错误运行功能
【发布时间】:2010-12-01 17:22:28
【问题描述】:

我正在尝试为我的 Rails 应用程序运行 Cucumber 并不断收到此错误:

> superclass mismatch for class Point (TypeError)

这个错误有一个巨大的堆栈跟踪,但它没有指向任何特定的东西,除了缺少的要求。这是跟踪:


rake 功能(在 /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 特征/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 发送' /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' /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' ./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:in polyglot_original_require' /Users/rob/.gem/ruby/1.8/gems/polyglot-0.2.9/lib/polyglot.rb:70:in 要求' /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 执行' /Users/rob/.gem/ruby/1.8/gems/cucumber-0.3.102/bin/cucumber:9 耙中止!命令失败 状态(1): [/System/Library/Frameworks/Ruby.framework/...]

【问题讨论】:

    标签: ruby-on-rails types cucumber geospatial


    【解决方案1】:

    我找到了这个问题的答案,这是一个类名冲突与 mySQL geoSpatial 插件和我的架构。

    我有一个名为 Point 的班级,一切都很愉快。然后我添加了(非常酷的)geoSpatial 插件来使用 mySQL 的地理索引功能。这个插件还定义了一个Point类。

    冲突导致 Cucumber 失败。

    如果您在自己的应用程序中看到此错误,请查找重复项!

    【讨论】:

    • 什么样的跛脚库将类添加到全局范围?这就是模块和命名空间的用途。
    • 我遇到了类似的问题 (stackoverflow.com/questions/1736747/…) - 非常烦人。 Gem 作者需要更加小心,以避免混淆顶级命名空间。
    • 是的,但您还需要命名任何已创建的表,不要忘记。如果 gem 足够可配置,那应该不是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2015-11-26
    • 2018-11-07
    相关资源
    最近更新 更多