EclipseのAndroidアプリのプロジェクトで、JUnitを使ってテストしようとしたら、JUnit自体がfatal errorでコケた。
テスト対象のクラスは、AndroidのAPIに依存しない形で作ってたやつだったので「あれー?」とか思ったんだけど、どうやらテスト時のclasspathにandroid.jarが入ってるだけで駄目らしい。
環境
・Ubuntu 10.04 LTS
・JDK 1.7
・Eclipse 3.7 Indigo
問題
↓みたいなエラーメッセージがEclipseのConsoleに表示されてJUnitが動かなかった。
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (classFileParser.cpp:3470), pid=12159, tid=3063847792
# Error: ShouldNotReachHere()
#
# JRE version: 7.0_01-b08
# Java VM: Java HotSpot(TM) Server VM (21.1-b02 mixed mode linux-x86 )
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
解決
- Run Configulationsを開く
- 対象のJUnitテストの設定を選ぶ
- Classpathタブでandroid.jarをremove
↑これでOKだと思うけど、参考にしたページでは、ちゃんとjunit.jarがプロジェクトのBuild Pathに入ってるかどうかも確認してるので、まぁ適宜確認する。
参考:
JUnit - うぃっきうぃき - livedoor Wiki(ウィキ)
http://wiki.livedoor.jp/hiromi_u/d/JUnit