2016-04-26 22 views
15

Rõ ràng là chạy thử nghiệm thiết bị đo được dừng khi ngoại lệ xảy ra trong ứng dụng được đo đạc:Làm cách nào để tiếp tục chạy thử nghiệm thiết bị Android sau khi ngoại lệ?

Kiểm tra không thành công. Lý do: 'Chạy thiết bị không thành công do' Ngoại lệ '. Kiểm tra nhật ký thiết bị để biết chi tiết

Đây có phải là hành vi mong muốn hoặc cấu hình sai trong một thiết bị đo tùy chỉnh không?

Tôi đang sử dụng tùy chỉnh MonitorinInstrumentation [1] để tự động hóa các thử nghiệm chấp nhận.

Thật không may, việc thực hiện kiểm tra bị hủy khi ngoại lệ xảy ra trong một thử nghiệm. Tôi muốn bộ kiểm tra hoàn thành và chỉ đánh dấu các kiểm tra không thành công, như trong JUnit.

Có cách tiếp cận chung để thực hiện các thử nghiệm (kết nối) mà không bỏ toàn bộ thiết bị trong trường hợp ngoại lệ xảy ra trong một thử nghiệm không?

  1. https://github.com/cucumber/cucumber-jvm/blob/master/examples/android/android-studio/Cukeulator/app/src/androidTest/java/cucumber/cukeulator/test/Instrumentation.java

Trả lời

2

kiểm tra Instrumentation nâng cao một ngoại lệ khi họ gặp khó khăn (ví dụ một số điều kiện mà bạn muốn kiểm tra). Bạn thường có thể tránh một số thử nghiệm thất bại bằng cách sử dụng câu lệnh try catch (hoặc thay đổi các kiểm tra đó). Trong trường hợp này, có điều gì đó khiến cho máy ảo Dalvik ngừng hoạt động. Điều này thường do sự cố trong ứng dụng của bạn gây ra. Hãy thử kiểm tra cẩn thận luồng kiểm tra của bạn để phân tích nếu có một số sự cố. Ngoài ra, hãy chắc chắn không sử dụng System.exit (0) trong onDestroy() trong một số hoạt động của bạn vì điều này có thể gây ra sự cố của bạn. Tôi hy vọng có thể giúp bạn.

+0

Trước hết cảm ơn rất nhiều cho câu trả lời của bạn. Thật không may nó không cung cấp một giải pháp cho vấn đề của tôi. Như tôi đã nói, các ứng dụng theo các bài kiểm tra làm tăng ngoại lệ mà dừng chạy thiết bị hoàn chỉnh. Thêm một thử-catch trong thử nghiệm là không áp dụng. Tôi đang tìm một giải pháp - nếu nó có thể với thiết bị đo đạc ở tất cả - nơi thiết bị chạy tiếp tục và chỉ là thử nghiệm, khiến ứng dụng gặp sự cố, được đánh dấu là "màu đỏ". – a11n

+0

Tôi biết đó không phải là giải pháp cho vấn đề này. Như tôi đã nói có một cái gì đó stoppig Dalvik Virtual Machine: theo ý kiến ​​của tôi điều này có thể liên quan đến một số lỗi trong mã của bạn và vì vậy tôi mời bạn kiểm tra mã của bạn. Tìm một số sự cố và đảm bảo không gọi ** System.exit (0) ** trong ** onDestroy() **. –

+0

Cả System.exit() lẫn onDestroy() đều không được gọi. Nhưng máy ảo Dalvik dừng lại, tất nhiên, do ngoại lệ trong ứng dụng được thiết kế. Sau khi đọc http://developer.android.com/tools/testing/testing_android.html#Instrumentation Tôi đã có ấn tượng rằng thiết bị này bắt đầu quá trình ứng dụng và bằng cách nào đó độc lập với ứng dụng.Nhưng bạn đang nói, rằng nhạc cụ "chết" nếu quá trình cụ "chết"? Có cơ hội nào để giải quyết chuyện này không? – a11n

0

Bạn có thể thử để đưa vào thư mục gốc của bạn build.gradle

tasks.withType(Test) { 
    ignoreFailures = true 
} 

Theo tài liệu:

Nếu một trong những thử nghiệm thất bại, trên mọi thiết bị, xây dựng sẽ thất bại.

Kiểm tra này android testing

+1

Sự cố của tôi không phải là bản dựng không thành công. Do đó, đề xuất của bạn không may sẽ không giúp ích gì. (Vấn đề của tôi là, bộ thử nghiệm không chạy để hoàn thành nếu một thử nghiệm dẫn đến một ngoại lệ trong ứng dụng được thử nghiệm.) – a11n

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