2011年7月2日土曜日

playで作るGAE用のwebアプリをscalaで書いたら、テストが動かないでござる。ニンニン。の巻

※今回の実行環境
Play! 1.2.1
Play!のGAEモジュール 1.4
Play!のscalaモジュール 0.9

先日Play frameworkを使ってGAEで動かすための実験アプリを作った。

コレ→ http://play-study.appspot.com/

まずはGAEで動かすぞ! ってことがテーマだったので、まだテストを書いていない。
そこで、次のステップとしてPlay frameworkでTDDを実践するため、まずはファーストステップとしてこのアプリのテストを書いてみた。

で、颯爽とテストを書き、"play test"コマンドを華麗に叩いたのち、"http://localhost:9000@tests"にブラウザでアクセスして大胆にテストを実行しようとしたところ…。


な、なんか出たーーーー!!?

前日にPlayでのテストを学ぶため、今回のアプリとは別のアプリを新規作成して実験していた際には普通にテストが動いていたので、いったい何が原因なのか…。

と、いうわけで、アプリを新規作成して、実験してみた。

まずは"play new [Application name] with --scala"と繊細にコマンドを叩き、アプリの新規作成。

この段階で"play test"でテストを動かしてみる。

……。うん。動いた。

続いて、テストを書いてみる。

……。うん。動いた。

で、テストが通るようにロジックを実装。

……。うん。動く。

viewを実装し、占いアプリの全体像が仕上がった。

テスト実行!!


…動くやないの。

ここで、GAEのモジュールを適用していないことに気づく。

dependencies.ymlに
  -play -> gae 1.4
という記述を追記し、"play dependencies --sync"を実行!!

で、テスト動かす。


う、動かなくなったーーーーー!!!!

続いて、scalaモジュールを入れずにJavaで全部書いてGAEモジュールを入れたところ、正常に動いた。

結論として、playでscalaとGAEのモジュールを混在させるとどうも上手くいかないみたい。理由までは調べてないけど。

※:アプリ作成時に、"play new [Application name]"でJava用の新規作成を行ったのち、GAEとscalaのモジュールを追加すると一応動いた。
このパターンで二種類ほどアプリをつくってみたけれど、片方はやっぱり同様のエラーで動かなくなっちゃったので、GAE用のアプリでテストを動かしたければ、まだscalaは使わないほうがいいのかも…。

0 件のコメント:

コメントを投稿