2011-07-22 10 views
8

いくつかのJUnit4テストを実行します。このコードはいくつかのAndroidライブラリ(Android XMLパーサー)に依存していますが、アクティビティなどは作成しません。テストを実行しようとすると、必要なAndroidクラスが見つかりませんでした。 AndroidコードでJUnit4テストを実行する方法はありますか?アクティビティをテストするのではなく、いくつかのライブラリでコードをテストする方法はありますか?Android JUnit4テスト

+0

可能な複製:http://stackoverflow.com/questions/2172152/cant-run-junit-4-test-case-in-eclipse/ –

答えて

3

AndroidでJUnit4を使用する方法はありません。それはJUnit3をサポートしていますが、それがあなたのオプションですか?

また、Robolectricを使用して、開発マシンでテストを実行することもできます(ここで、あなたが好きな単位テストフレームワークを使用できます)。これがあなたにとってうまくいくかどうかは、あなたがテストしているものに依存しますが、それは価値があるかもしれませんか?

9

私は同じ問題を抱え、JUnit4をAndroidの既存のTestRunnerに適応させようとしました。成功しませんでした。そこで、というJUnit4Androidという新しいプロジェクトを作成しました。これは、JUnit4およびJUnit3テストおよびテストスイート用のTestRunnerアプリケーションライブラリです。したがって、既存のJUnit4テストを実行することができます。 GitHubの上のより多くの情報を見つけるしてください:

https://github.com/dthommes/JUnit4Android/wiki

+1

これを今読んでいる人には、AndroidJUnit4を調べることをおすすめします。これはJUnit 4とDBUnitをAndroidにもたらします。 https://github.com/esmasui/AndroidJUnit4 – spaaarky21

0

をそれは少し遅れるかもしれませんが、junit4についてGoogleからの公式の更新が最後にあります:

Android-test-kit projectといくつかの他の情報源に基づいていること、それは明らかだ: AndroidJUnitRunnerは

Androidのサポートテストライブラリの一部であり、Androidの 経由でダウンロードすることができますAndroid用の新しいバンドルされていないテストランナーであり、サポートリポジトリ。新しいランナーは GoogleInstrumentationTestRunnerの全ての改良が含まれており、より多くの機能が追加されています。

- JUnit4 support 
- Instrumentation Registry for accessing Instrumentation, Context and Bundle Arguments 
- Test Filters @SdkSupress and @RequiresDevice 
- Test timeouts 
- Sharding of tests 
- RunListener support to hook into the test run lifecycle 
- Activity monitoring mechanism ActivityLifecycleMonitorRegistry 

実は、それはすでにサポートリポジトリに提示しています。あなたは

%ANDROID_HOME%\extras\android\m2repository\com\android\support\test\testing-support-lib\

に行けば、それはそこでtesting-support-libを見つけることが可能です(AARは、瓶など)JUnit4を使用できるようになります。さらに、UIテストに便利なエスプレッソライブラリと同じ場所が含まれています。 Androidのサイトに見えて、libの公式リファレンスがすぐにその情報で更新されるようサポートしています。

関連する問題