2012-06-08 21 views
10

Thông thường tôi chạy thử nghiệm junit bằng cách sử dụng adb shell am instrument -w com.android.contacts.tests/android.test.InstrumentationTestRunner. Và nó thực sự hoạt động, nó sẽ chạy tất cả các bài kiểm tra của tôi.Có thể vào chế độ gỡ lỗi cho android khi chạy thử nghiệm junit không?

Nhưng khi tôi thực hiện một điểm ngắt và muốn vào chế độ gỡ lỗi khi chạy junit, nó không thành công. Cách tôi làm cho điểm ngắt hoạt động khi tôi gỡ lỗi ứng dụng android thông thường.

Vì vậy, tôi đã tìm kiếm trên web và thử một cái gì đó như adb shell am instrument -e debug true -e class com.android.contacts.AndroidUtilsTest -w com.android.contacts.tests/android.test.InstrumentationTestRunner, nhưng vẫn không có may mắn. Làm thế nào để bạn giải quyết vấn đề này? Tôi không chỉ muốn gỡ lỗi lớp junit, mà còn là mã trong dự án bình thường.

Trả lời

2

Tôi đã tìm thấy câu trả lời ngay bây giờ. Nó sẽ chặn khi tôi khởi động thiết bị vì nó đang chờ tôi đặt điểm ngắt. Vì vậy, sau khi tôi thực hiện một breakpoint, sau đó junit bắt đầu chạy. Vì vậy, trình tự gỡ lỗi một dự án junit android là:

  1. công cụ khởi động có gỡ lỗi được đặt đúng.
  2. tạo điểm ngắt bằng dòng lệnh hoặc nhật thực.
  3. công cụ sẽ bắt đầu chạy tự động.
+0

Trong trường hợp ý tưởng JetBrains: 1. bắt đầu công cụ gỡ lỗi được đặt đúng. 2. Đính kèm trình sửa lỗi để xử lý ứng dụng của bạn 3. Thử nghiệm sẽ bắt đầu – molokoka

+3

Ý của bạn là "gỡ lỗi đặt đúng"? Cài đặt này ở đâu? –

7

Tôi đoán bạn đang cố gắng gỡ lỗi các thử nghiệm của mình bằng Eclipse. Nếu đây là trường hợp bạn chỉ có thể chọn dự án thử nghiệm, hãy nhấp chuột phải, Gỡ lỗi dưới dạng ... -> Thử nghiệm Android JUNit và việc thực thi sẽ dừng tại điểm ngắt bạn đặt trong thử nghiệm hoặc trong mã của bạn.

+0

Thực ra, tôi làm tất cả những công việc này trong dòng lệnh. Có lẽ trong nhật thực, phương pháp của bạn sẽ hoạt động. –

0

Để gỡ lỗi thử nghiệm Android JUnit đừng quên đặt debuggable=true vào dự án có thể kiểm chứng.

+0

Thực ra, đừng làm thế. Các công cụ xây dựng sẽ làm điều đó cho bạn. – Christine