2011-07-07 53 views
6

Tôi đang cố gắng tích hợp các thử nghiệm Android JUnit với bản dựng kiến ​​trúc Bamboo Ant của chúng tôi. Tôi đã thử nghiệm thiết lập cục bộ và tôi có thể chạy thử nghiệm.Android: Cách cài đặt APK thiết bị đo đạc lên AVD trong Máy chủ không đầu

Nhưng khi tôi cố gắng cùng một thiết lập trong máy chủ tre của chúng tôi, tôi nhận được lỗi sau khi chạy các bài kiểm tra:

INSTRUMENTATION_STATUS: id=ActivityManagerService 
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner} 
INSTRUMENTATION_STATUS_CODE: -1 
android.util.AndroidException: INSTRUMENTATION_FAILED: com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner 

Lưu ý rằng tôi đã sử dụng một thư viện tùy chỉnh cho Instrumentation (http://code.google.com/p/the-missing-android-xml-junit-test-runner/), vì vậy mà tôi có thể kéo kết quả thử nghiệm JUNit xml và đưa nó vào Bamboo.

Ngoài ra, tác nhân xây dựng được sử dụng trong việc tạo bản dựng là một máy ảo Ubuntu, không có bất kỳ GUI nào vì vậy tôi cần phải làm mọi thứ thông qua dòng lệnh. Một AVD đã chạy trên máy ảo đó.

Tôi đã gặp phải vấn đề tương tự khi lần đầu tiên chạy lệnh adb shell am instrument .. <snip> cục bộ và tôi thấy nó lạ khi nó hoạt động sau khi chạy thử nghiệm từ Eclipse.

Nhìn lên các bản ghi lỗi, bài viết Android Instrumentation Framework nói với tôi rằng

"Có thể là các thiết bị đo đạc Gói ứng dụng không được cài đặt trên thiết bị của bạn hoặc tên gói là không chính xác trong tập tin Manifest . "

vì vậy, phải cài đặt APK thiết bị đo đạc.

Vì vậy, làm cách nào để cài đặt APK ứng dụng vào AVD?

Cảm ơn!

Trả lời

2

Có một lý do khác có thể: tên gói không chính xác trong tệp kê khai.

Kiểm tra tên gói trong tệp kê khai của dự án thử nghiệm đơn vị của bạn trước tiên!

+0

câu trả lời tuyệt vời! Cám ơn – Snicolas

1

Tôi cũng là một trong số ít người đã tải xuống InstrumentationTestRunner tùy chỉnh đó (http://code.google.com/p/the-missing-android-xml-junit-test-runner/) và tôi hiện đang bị kẹt về vấn đề này! Tôi nhận được thông báo lỗi tương tự, rất tiếc là tôi không biết câu trả lời ngay bây giờ, nhưng sẽ cập nhật khi tôi khám phá điều gì đó hữu ích. Trong khi đó tôi nhìn cho các tùy chọn khác như Test Runner của người này: http://www.alittlemadness.com/2010/07/14/android-testing-xml-reports-for-continuous-integration/

Ngoài ra còn có một cuộc thảo luận liên quan đến hội nhập liên tục: How to Generate Android Testing Report in HTML Automatically

1

bạn có lẽ có thể giải quyết này, nếu bạn thêm vào xây dựng kịch bản của bạn:

adb install -r testproject/bin/testproject.apk 

kiểm tra đầu tiên như thế nào apk-file đã được đặt tên, vì tôi vẫn không tìm ra, làm thế nào kiến ​​sẽ làm điều đó một cách chính xác, nhưng nó được tạo ra thường trong bin thư mục.

Xem thêm tài liệu android chính thức.

-1

Tôi đã chạy vào cùng một vấn đề chính xác với việc chạy bản dựng android dưới Bamboo. Tôi thấy rằng vì lý do nào đó, phần tử android:targetPackage trong tệp kê khai dự án thử nghiệm của tôi không chính xác. Nó đã được thiết lập là gói của dự án chính của tôi, không phải dự án thử nghiệm.Đối với một số lý do chạy khi chạy các bài kiểm tra trong eclipse eveything làm việc tốt, nhưng nó đã chết khi tôi cố gắng chạy thử nghiệm ant tại dòng lệnh. Thẻ thiết bị đo đạc thiết bị đo đạc:

<instrumentation 
    android:name="android.test.InstrumentationTestRunner" 
    android:targetPackage="com.example.blah" /> 

Điều này được tạo tự động bằng nhật thực khi tôi tạo dự án. Tôi đã thay đổi nó để đọc:

<instrumentation 
    android:name="android.test.InstrumentationTestRunner" 
    android:targetPackage="com.example.blah.test" /> 

và đột nhiên mọi thứ đều ổn.

3

Có thể có nhiều tình huống có thể gây ra lỗi này, nhưng tôi nhận được nó không có phiên bản cụ thể của gói thử được cài đặt trên trình mô phỏng. Tài liệu là một chút scant, nhưng tôi không nghĩ rằng có một "nhạc cụ APK" mà bạn cài đặt vào giả lập (ít nhất tôi không thể tìm thấy một điều như vậy); bạn xây dựng ứng dụng thử nghiệm của mình với thiết bị được bao gồm. Dù sao, đây là cách tôi chạy thử nghiệm từ dòng lệnh sử dụng kiến, mà bây giờ hoạt động:

ant instrument install test 

và điều này cũng trình chạy trên Jenkins sử dụng plugin giả lập Android (https://wiki.jenkins-ci.org/display/JENKINS/Android+Emulator+Plugin). Tôi đã tìm thấy nhiệm vụ công cụ trong tài liệu hướng dẫn xây dựng dòng lệnh tại đây: http://developer.android.com/tools/building/building-cmdline.html.

0

Tôi đã gặp sự cố này khi chạy thử nghiệm của mình đối với thiết bị ảo Android 1.5 cũ. Sau khi chuyển sang một thiết bị ảo 2.3.3, vấn đề đã biến mất. Tôi không biết liệu sự cố có phải do hệ điều hành thiết bị ảo cũ hay thiết bị ảo đang được tạo bằng các công cụ Android SDK cũ.

Các vấn đề liên quan