2

ruby 1.9.1 で作業しているアプリケーションがあります。UI で JavaScript をテストしたいのですが、カピバラのデフォルトの Selenium ドライバーは、テストする必要があるイベントをサポートしていません。

明らかにcelertiy/culerityは現時点ではjrubyでしか動作しないため、テストのためにrvmを使用してアプリケーションをjrubyに切り替えるプロセスを進めています。バンドルをインストールして、アプリケーションが jruby で正しく動作しているように見えますが、「rake cucumber」を実行しようとすると、次の出力が得られます。

Using the default profile...
superclass mismatch for class SQLiteAdapter (TypeError)
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/database_cleaner-0.5.2/lib/database_cleaner/active_record/truncation.rb:11
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/database_cleaner-0.5.2/lib/database_cleaner/active_record/truncation.rb:239:in `require'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:227:in `load_dependency'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/database_cleaner-0.5.2/lib/database_cleaner/configuration.rb:86:in `orm_strategy'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/database_cleaner-0.5.2/lib/database_cleaner/configuration.rb:42:in `create_strategy'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/database_cleaner-0.5.2/lib/database_cleaner/configuration.rb:56:in `strategy='
/home/david/rental/features/support/env.rb:58
/home/david/rental/features/support/env.rb:143:in `load'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/rb_support/rb_language.rb:143:in `load_code_file'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/runtime/support_code.rb:158:in `load_file'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/runtime/support_code.rb:61:in `load_files!'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/runtime/support_code.rb:60:in `each'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/runtime/support_code.rb:60:in `load_files!'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/runtime.rb:185:in `load_step_definitions'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/runtime.rb:26:in `run!'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/cli/main.rb:54:in `execute!'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/../lib/cucumber/cli/main.rb:29:in `execute'
/home/david/.rvm/gems/jruby-1.5.3@test2/gems/cucumber-0.9.2/bin/cucumber:8
rake aborted!
Command failed with status (1): [bundle exec /home/david/.rvm/rubies/jruby-...]

ある時点で、テスト データベースに sqlite を使用していましたが、その後変更されました。sqlite に戻そうとしましたが、それでも同じエラーが発生します。features/support/env.rb で database_cleaner を無効にすると、テストは実行されますが、不思議なことにすべて失敗します。

ここで何が起こっているか知っている人はいますか?

4

2 に答える 2

1

これは、データベース クリーナーと jdbc が対話する方法に問題があるようです。

http://github.com/tmikoss/database_cleaner/commit/83d85cf7740e4aef97dd6fd5c0908cb09a2f0ca9

更新: 同じ問題に苦しんでいたため、この質問を見つけました。上記でリンクした database_cleaner のバージョンは実際に問題を修正します。database_cleaner プロジェクトにも問題があり、チームに問題を通知します。私はそれを回避することができました:

# someplace on your computer    
git clone http://github.com/tmikoss/database_cleaner.git

#in your projects Gemfile
gem "database_cleaner", :path => "path/to/above/copy/of/gem"

更新更新: この修正は、database_cleaner マスターの v0.6.0 で利用できるはずです

于 2010-10-25T16:59:22.537 に答える
0

使用している SQLite アダプターが jRuby と互換性があることを確認しましたか? 次のものが必要です。

宝石:activerecord-jdbcsqlite3-adapterjdbc-sqlite3

activerecord-jdbcsqlite3-adapter(私は常に両方をインストールします。

次にconfig/database.yml、jdbcsqlite3 アダプターを使用するように編集します。

cucumber:
  adapter: jdbcsqlite3
  database: db/development.sqlite3
  timeout: 5000
于 2010-10-25T12:59:54.467 に答える