Tôi đang viết kiểm tra cho một thành phần trong ứng dụng Android của mình. Thành phần này sử dụng các hoạt động để thực hiện một số báo cáo. Vì vậy, tôi cần một hoạt động để kiểm tra các thành phần (kiến trúc xấu xí) và tôi nghĩ rằng nó sẽ được dễ dàng để tạo ra một hoạt động nộm bên trong dự án thử nghiệm và hơn tạo ra các xét nghiệm di truyền từ ActivityInstrumentationTestCase2<TestActivity>
, nhưng đối với một số lý do tôi luôn có được java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.xxx/.Testctivity }
ngoại lệ.Có thể xác định Hoạt động trong dự án thử nghiệm Android và chạy thử nghiệm không?
hoạt động thử nghiệm được thêm vào file manifest và gói dường như được thiết lập một cách chính xác.
Tôi đã cố gắng để đặt nó trong cả com.xxx (gói của ứng dụng) và các gói com.xxx.test, không có may mắn. Nhưng khi tôi di chuyển TestActivity vào ứng dụng đích, mọi thứ đều hoạt động tốt. Vì vậy, tôi bắt đầu tự hỏi sự khác biệt giữa dự án thử nghiệm và ứng dụng của tôi là gì và thậm chí có thể có các hoạt động bên trong các dự án thử nghiệm.
Khi tôi thay đổi targetPackage tự , nó bắt đầu thất bại với NoSuchMethodException tại InstrumentationTestRunner.onCreate – basin
tôi đã gặp rắc rối với phương pháp này; Tôi nghĩ rằng nếu gói/manifest/@ giống như/manifest/instrumentation/@ android: targetPackage thì các bài kiểm tra sẽ thay thế hiệu quả ứng dụng đang kiểm tra, làm cho nó không thể tham chiếu các lớp của nó. Tôi đã nhận được ClassNotFoundExceptions. –
Tôi nhận được nó làm việc với phương pháp này bằng cách thêm một AndroidManifest.xml bổ sung trong thư mục androidTest. Nhưng với phiên bản Android Studio mới hơn, kể từ 2.3.1I hiện đang sử dụng, phần tử '' là không cần thiết. –