junitテストを実行するアンドロイドテストプロジェクトをセットアップしました。私のテストが "ApplicationTest"プロジェクトにある2つのEclipseプロジェクト "Application"と "ApplicationTest"を使用しています。私のテストの1つでは、私はファイルにアクセスする必要があります。これは、ファイルをsdcardに置いてFileオブジェクトをポイントするとうまくいきます。しかし、私はリソースとしてファイルにアクセスしたいですが、それは動作していないようです。これは私がやったことです:アンドロイドテストプロジェクトのリソースへのアクセス
それは使用して取得しようとしてApplicationTest/res/raw/myfile.xml
- :
InputStream is = getContext().getResources().openRawResource(R.raw.myfile);
しかし、それは私にこの例外を与える:
android.content.res.Resources$NotFoundException: File Hello World, HelloAndroidActivity! from drawable resource ID #0x7f040000 at android.content.res.Resources.openRawResource(Resources.java:823) at android.content.res.Resources.openRawResource(Resources.java:799) at com.quizzer.test.QuestionHandlerTests.testImportQuestions(Tests.java:182) at java.lang.reflect.Method.invokeNative(Native Method) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448) Caused by: java.io.FileNotFoundException: Hello World, HelloAndroidActivity! at android.content.res.AssetManager.openNonAssetNative(Native Method) at android.content.res.AssetManager.openNonAsset(AssetManager.java:406) at android.content.res.Resources.openRawResource(Resources.java:820) ... 14 more
私のテストクラスをAndroidTestCaseを拡張して、コンテキストがどこから来るのかを確認します。
更新:
だから、問題はコンパイル時にテストプロジェクト内のリソースが使用されますが、実行時にメインプロジェクト内のリソースが使用されていることであるように見えます。私はまだそれを修正する方法が不明です。だから、私はテスト・プロジェクトとメイン・プロジェクトの両方で、同じ原始資源を入れているのは当然です。
そのを使用することができます3.0.0。それともちょうど私かもしれません。あなたはここで何をしようとしているのかを詳しく説明できますか?設定は明確ですが、PASSの結果とFAILの結果の例を示してください。 – Siddharth
@Siddharth私は、リソースが私のテストに合格すると、(私はsdcardからファイルに直接アクセスするとうまくいくので)私が詳しく調べるべきか分からない。私は、アンドロイドでリソースファイルを使用する方法や、単体テストクラスからアクセスする方法について何か不足しているかもしれないと思います。 – Zitrax
アンドロイドテストプロジェクトがサブプロジェクトの場合は、それが役に立ちますか?または依存プロジェクトですか? – Siddharth