makotan _at_ gmail dot com

sbtとeclipseめ・・・

やっとEclipseとsbtがなんとなく連携できたので気をよくして実際のコードを書いてみるなんて無茶をやってみるテスト。
ちなみに環境はMac&JDK6&Eclipse Indigo Service Release 1です。
経緯なんて興味ない。ってあわてんぼうの人は一番しただけどうぞ。


とりあえず、sbtでeclipseプロジェクトを作って
Scala-IDE組み込み済みEclipseにインポート
とりあえず、テストケースを作ろうかな〜って思ったら新規作成のところにないし・・・
とりあえずtest/scalaの下に普通のクラスを作ってorg.scalatest.FunSuiteを継承させてみる
それらしくなったぞ!(言い過ぎ)


次に、適当なテストケースを作る・・・ほんとに適当w

	test("my first test") {
	  val sum = 1 + 1
	  assert(sum == 2)
	}

で、このテストクラスを実行は・・・・・・・・・・・・・ない?
QuickJUnitもテストクラスを選択してくださいって言ってくるし・・・残念だなぁ〜
ということで、sbtコマンドで test って打ったらテストしてくれるんじゃね!?って思ったので打ってみた

java.lang.OutOfMemoryError: PermGen space

ぉぃ


sbtってbrewで入れたからなぁ〜ってことでゴニョゴニョって調べたらこんなんで回避できるらしいことが判った

set SBT_OPTS=-XX:MaxPermSize=128M -Xmx1024M 

ということで、もう一回!

[info]   Compilation completed in 15.935 s
[info] Test01:
[info] - my first test
[info] Passed: : Total 1, Failed 0, Errors 0, Passed 1, Skipped 0

おお〜なんか動いた!
面倒だから ~test にしとこ


そういえば、テストケースといえば日本語だよね〜

	test("テスト二つ目!") {
	  val sum = 1 + 11
	  assert(sum == 12)
	}

さくっと成功かな〜って思ったら・・・

[error] IO error while decoding /Users/makotan/projects/scala291/project/test/test01/src/test/scala/testcase/Test01.scala with UTF-8
[error] Please try specifying another one using the -encoding option
[error] one error found

文字がUTF-8じゃないだと!ってそういえばEclipseは入れたばっかりで何も設定してなかった〜って思い出す
せっせとEclipseUTF-8にしてさっきのテストファイルもUTF-8にして・・・保存っと

[info] Test01:
[info] - my first test
[info] - ?e?X?g???ځI
[info] Passed: : Total 2, Failed 0, Errors 0, Passed 2, Skipped 0

そう、これこれ、この結果がほしかった!!



ってここで化けてる〜〜〜orz
どうも、コンソール側をsjisに設定すると動くらしい・・・ってことでsbt専用設定を作ってそれだけsjisにしたら・・・

[info] - テスト二つ目!

はっきりこの文字がっ!
まぁここまで来るのに紆余曲折してるけどさくっとカット。


ってことで、本日のまとめ
Eclipseutf-8で設定するのを忘れずに。
sbt用のjavaオプション設定は set SBT_OPTS=-XX:MaxPermSize=128M -Xmx1024M
ファイルはutf-8でもコンソールはsjis出力で。
sbt起動後に ~test って入れとけば保存すれば勝手にテストしてくれるよ!
ScalaTestはorg.scalatest.FunSuiteを継承するとこから始めると簡単そう