いいのか悪いか、まだよくわかりませんが、うまくいったやり方をメモしておきます。
⇒良くないやり方でした。文末の 追記:2013/09/27 を参照してください。
Android Test Projectを右クリックして、ビルドパスの設定を選択します。ライブラリタブで、「Add Library」をクリックし、JUnitを選択して「Finish」ボタンを押してライブラリを追加します。
手順3で作成したクラスを右クリック→Run As→Run Configurationsを選択し、「Classpath」タブを選択します。そこに表示されているAndroid 2.1を選択して、「Remove」ボタンを押下します。
そのまま「Run」ボタンを押下すると、JUnitが起動して結果を表示してくれます。

なお、これ以降、 TestCaseを継承する際、android.jar版とjunit.jar版が表示されるので適切な方を選択すれば良いでしょう。
上記では、右クリック > Run as > 2 Juite Test
をする場合のやり方ですが、AndroidのJUnitテストを行う場合は、TestCaseを継承していようと,
Android固有のクラスを使う予定がなくても、②JUnit Testではなく、一貫して①Android JUnit Testを行うようにした方が良いと思います。起動に時間がかかるとは言え、TestCaseの継承であれば、②JUnit Testの場合とそんなに実感できるほどの差がないように思います。それより、先ほど述べた面倒な部分がかなりデメリットとなります。こんな記事を書いてしまいましたが、どうしても、起動が遅くてサクサクテストできない場合は、テスト環境を実機なりVirtual BoxなりPCのメモリやCPUといった方を見直すことを先に考えた方が良いと思われます。
>新しくテストケースを作るたびに上記の手順をやる必要があるので、面倒です
確かに面倒
>一貫して①Android JUnit Testを行うようにした方が良いと思います。起動に時間がかかるとは言え、TestCaseの継承であれば、②JUnit Testの場合とそんなに実感できるほどの差がないように思います
僕は何を言ってるんだ、遅ぇーよ!!
エミュレータと比べて感覚が麻痺してたのかな....
上記のやり方は間違ってましたm(_ _)m
テストケースのJavaファイル上で、右クリック > Run as > 2 Juite Testを選択
表示されたダイアログで、「Android JUnit Test Launcher」を選択してOKボタンを押下
これで、上記の面倒な手順を踏まなくても、Javaプロジェクトのテストケースのように光の速さでロジックテストの起動が行えます。
⇒良くないやり方でした。文末の 追記:2013/09/27 を参照してください。
環境
- Windows7
- JDK1.7
- Eclipse 3.7 Indigo Service Release 2
- Android 2.1
手順
- Android Test Projectとして新規プロジェクトの作成
- 別途作成していたAndroid Application Projectのプロジェクトをテスト対象として選択
- TestCaseを継承してクラスを作成
- このクラスにテスト対象のクラスのインスタンスを生成するだけのコードを記述
- パッケージエクスプローラより、右クリック→Run As→Junit Testを選択
- ダイアログが表示されるので、「Eclipse JUnit Lancher」を選択してOK
追記:ここが間違い↑ 「Android JUnit Test Launcher」を選択すれば以下は出ない
Eclipseのコンソールに表示されるエラー
Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/ref/FinalReference
対応
以下の手順JUnitで起動できました。Android Test Projectを右クリックして、ビルドパスの設定を選択します。ライブラリタブで、「Add Library」をクリックし、JUnitを選択して「Finish」ボタンを押してライブラリを追加します。
手順3で作成したクラスを右クリック→Run As→Run Configurationsを選択し、「Classpath」タブを選択します。そこに表示されているAndroid 2.1を選択して、「Remove」ボタンを押下します。
そのまま「Run」ボタンを押下すると、JUnitが起動して結果を表示してくれます。
なお、これ以降、 TestCaseを継承する際、android.jar版とjunit.jar版が表示されるので適切な方を選択すれば良いでしょう。
最後に
ActivityのテストをするべくAndroid Test Projectを作成したわけですが、その内部ロジックだけを単体テストをしたいのに、エミュレータ付だと遅いので、Eclipseに最初からあるJUnitテストをやりたかったのですが、起動できず若干の試行錯誤しました。ロジック部分の内容にもよりますが、やっぱりエミュレータなしだと一瞬でテストが終わるのでありがたいです。追記:2013/02/20
重いエミュレータを利用する時は有効かもしれませんが、実機、Virtual Boxなどを利用してテストしている場合は、新しくテストケースを作るたびに上記の手順をやる必要があるので、面倒です。しかも、Log.vとか使えないので。上記では、右クリック > Run as > 2 Juite Test
をする場合のやり方ですが、
追記:2013/09/27
2013/02/20の追記に関して>新しくテストケースを作るたびに上記の手順をやる必要があるので、面倒です
確かに面倒
>一貫して①Android JUnit Testを行うようにした方が良いと思います。起動に時間がかかるとは言え、TestCaseの継承であれば、②JUnit Testの場合とそんなに実感できるほどの差がないように思います
僕は何を言ってるんだ、遅ぇーよ!!
エミュレータと比べて感覚が麻痺してたのかな....
上記のやり方は間違ってましたm(_ _)m
テストケースのJavaファイル上で、右クリック > Run as > 2 Juite Testを選択
表示されたダイアログで、「Android JUnit Test Launcher」を選択してOKボタンを押下
これで、上記の面倒な手順を踏まなくても、Javaプロジェクトのテストケースのように光の速さでロジックテストの起動が行えます。
コメント
コメントを投稿