Tôi đã thiết lập dự án thử nghiệm android chạy thử nghiệm junit. Nó sử dụng hai dự án eclipse "Application" và "ApplicationTest", nơi các test của tôi nằm trong dự án "ApplicationTest". Trong một bài kiểm tra của tôi, tôi cần truy cập một tệp, điều này có tác dụng tốt nếu tôi đặt tệp trên sdcard và trỏ một đối tượng Tệp vào đó. Tuy nhiên tôi muốn truy cập các tập tin như một nguồn tài nguyên, nhưng điều đó dường như không hoạt động. Đây là những gì tôi đã làm:Truy cập tài nguyên trong dự án thử nghiệm android
- lưu các tập tin trong
ApplicationTest/res/raw/myfile.xml
- Đang cố gắng để làm cho nó sử dụng:
InputStream is = getContext().getResources().openRawResource(R.raw.myfile);
Nhưng điều đó mang lại cho tôi ngoại lệ này:
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
lớp thử nghiệm của tôi mở rộng AndroidTestCase để đó là ngữ cảnh đến từ đâu.
Cập nhật:
Vì vậy, vấn đề dường như rằng trong biên soạn tài nguyên trong dự án thử nghiệm được sử dụng, nhưng khi chạy các nguồn lực trong dự án chính được sử dụng. Tôi chưa chắc chắn cách khắc phục điều đó. Vì vậy, hiện tại nó chỉ hoạt động nếu tôi đặt cùng một nguồn nguyên liệu cả trong dự án thử nghiệm và dự án chính mà tất nhiên là khá ngu ngốc.
của nó không rõ ràng những gì bạn đang cố gắng làm ở đây. Hoặc có thể chỉ là tôi. Bạn có thể xây dựng những gì bạn đang cố gắng làm ở đây không. Các thiết lập là rõ ràng, chỉ cần đưa ra một ví dụ về những gì bạn mong đợi cho một kết quả PASS và một kết quả FAIL. – Siddharth
@Siddharth Tôi không chắc chắn những gì tôi nên xây dựng trên, tôi có nghĩa là nếu tài nguyên đã được tìm thấy thử nghiệm của tôi sẽ vượt qua (vì nó hoạt động tốt nếu tôi truy cập các tập tin trực tiếp từ sdcard). Tôi đoán tôi có thể đã bỏ lỡ một cái gì đó về cách sử dụng các tập tin tài nguyên trong Android, hoặc làm thế nào để truy cập chúng từ các lớp học thử nghiệm đơn vị. – Zitrax
Vì vậy, nó sẽ giúp nếu dự án thử nghiệm android là một dự án phụ? Hoặc một dự án phụ thuộc? – Siddharth