基礎Ruby on RailsのasagaoをRails2.3に対応させる その2
2012/08/15
前回
--通りましたよっと!
これでWebサーバを起動すればトップページが見られると思います。
と、書きましたが、あれ、嘘です。そもそもまだ動いてませんでした。
単体テストが通らない通らない!
なんでだろう・・・ということで試行錯誤しています。
ちなみに、現在使っているRuby on Railsのバージョンは2.3。こいつが鬼門でした。やはり設定などが結構違っているんですね!
では行ってみましょう、続きです。
この前の記事のあと、またunitテストを行うとこんなエラーが出ます
--------------------
undefined method `use_transactional_fixtures='
--------------------
なんでしょう。と思って探してみると・・・
Ruby on Rails 2.3でテストを実行すると、undefined method `use_transactional_fixtures='というエラーになるときの対策
という、そのものズバリなエントリーを発見。
----------
Ruby on Rails 2.3では、TestCaseクラスをTest::Unit::TestCaseからActiveSupport::TestCaseに変更する必要があります。
----------
ということなのだそうです。もうこれは仕方ないので、テストファイルをすべて変更。
しかし、まだまだエラーは続く。
-------------
1) Error:
test_author(BlogEntryTest):
Fixture::FormatError: a YAML error occurred parsing /var/www/html/***/test/fixtures/members.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html
The exact error was:
NameError: uninitialized constant Digest::SHA1
-------------
あれ、なんか見たことあるエラー・・・
よくわかりませんね。
とりあえずこれでぐぐってみる。
-------------
NameError: uninitialized constant Digest::SHA1
-------------
ヒントを見つけました!--------------------
パスワードを暗号化する箇所でロードエラーが発生しているので明示的に Digest::SHA1 をロードするようにします。
------------------------------------------
というわけで、
/test/unit/blog_entry_text.rb
の2行目に
-------------
require 'digest/sha1'
-------------
こいつを追記!
再度、
$ rake db:initialize --trace
をやってみると!!!
-----------------------
Started
........................................F.......
Finished in 16.334701 seconds.
-----------------------
おおおおおおおおおお!!!!!通った!なんか31個あったエラーのすべてがこれで解決したじゃないか!
素敵です。
というわけで、やっとこ単体テストが完了する。
次!
とおもいましたが、眠いのでこの辺でお疲れ様でした。