MySQLのデータベース権限を指定してあげることでrake db:migrateにて
テーブルが作れるようになった・・・先週からの続き。
スケジューラーのチュートリアルを完成させようと思います。
が、scaffoldでMVCを構築してもらい、「 $ rake 」でテストをしたら
出ました エラー ・・・ 涙
$ rake
(in /home/b-tech01/scheduler)
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb" "test/unit/schedule_test.rb"
Loaded suite /usr/lib/ruby/1.8/rake/rake_test_loader
Started
.
Finished in 0.051288 seconds.
1 tests, 1 assertions, 0 failures, 0 errors
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb" "test/functional/schedules_controller_test.rb"
Loaded suite /usr/lib/ruby/1.8/rake/rake_test_loader
Started
EEEEEEEE
Finished in 0.066953 seconds.
1) Error:
test_create(SchedulesControllerTest):
StandardError: No fixture with name 'first' found for table 'schedules'
/home/b-tech01/scheduler/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:489:in `schedules'
./test/functional/schedules_controller_test.rb:15:in `setup_without_fixtures'
/home/b-tech01/scheduler/config/../vendor/rails/activerecord/lib/active_record/fixtures.rb:562:in `setup'
−−−− 略 −−−− 同じエラーが8つ −−−−
8 tests, 0 assertions, 0 failures, 8 errors
/usr/bin/ruby1.8 -Ilib:test "/usr/lib/ruby/1.8/rake/rake_test_loader.rb"
rake aborted!
Test failures
エラーで該当している箇所を見ても、もちろん追いきれなかったので、
『StandardError: No fixture with name 'first'』をググってみた。
Railsのテストが通らない場合
上記URLの " その一 " を実行したら 即、解決!
> scaffoldを利用した場合、test/fixturesフォルダにfixtureされるymlファイルが生成されます。
> が、なぜかこのファイル内に :firstがうめこまれていないのです。それなのにテストコードのほうは
>
> @first_id = hogehoges(:first).id
>
> で、:firstを探しにいっているので見つからずにエラーになるわけです。不思議ですねぇ
本当に、不思議ですねぇ。
無事表示ができるようになったところで教本の通り、
『一覧表示画面のカスタマイズ』をしてみます。
まず最初のエラーは、簡単なsyntax error
schedules_controller.rbに追記する際に「 , 」を忘れていた。
そして次。
テスト用のデータベースにデータを入れるため/test/fixtures/schedules.ymlに
schedule1:
id: 1
datetime: 2007-10-10 12:00
title: 勉強1
content: 今日も勉強1
schedule2:
id: 2
datetime: 2007-10-11 12:00
title: 勉強2
content: 今日も勉強2
と記述するものの、やはりエラーーーー
Fixture::FormatError: ../test/fixtures/schedules.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed.
ArgumentError: syntax error on line 3, col 10: ` datetime: 2007-11-11 12:43:00'
tabは使ってないから大丈夫。・・・と思っていたら、
記述した「 id: 1 」の前にスペースを入れ忘れていた・・・
schedule1:
id: 1 ←←← スペースが入ってない!
datetime: 2007-10-10 12:00
title: 勉強1
content: 今日も勉強1
このケアレスミス、一人だったらほぼ気づけないと思う(汗
そして、現在MySQLの日本語文字化けと格闘中。
● [MySQL] 文字化け問題を本気で直す
を参考にしてみるが、現在もまだ文字化け「????」中。
SQLite3にして先に進んだ方が良いかなぁ・・・とは思いつつも
MySQLでやってみてエラーをたくさん経験して、今のうちに
自分が弱いところなどを知るのも良いかと思ってます。
でも、明日で最後にするつもりです・・・
さきほどまでコマンドプロンプトで作っていたプロジェクトを
Aptanaにインポートしてやっていて、rakeフォルダの中にrakeフォルダ・・・
と意味の分からないことになっていたのが気になっていたので、
Aptanaで最初から同じところまで作ってrakeでテストしました。
・・・が、やはり文字化けしてました。
今日はここまでで、明日頑張ります。
でも、Aptanaの使いかたが分かりつつあるので
無駄ではない!ハズ・・・
0 件のコメント:
コメントを投稿