2010-04-01 27 views

Trả lời

3

Tôi nên thêm câu trả lời này một lúc trước.

Tôi đã sử dụng https://github.com/jsankey/android-junit-report trong gần một năm nay và điều đó đã làm việc tốt hơn nhiều so với Athena hoặc bất kỳ điều gì khác mà tôi đã tìm thấy.

0

Theo dõi khác, tôi đã đưa ra giải pháp "phong nha". Khi chạy thử nghiệm thiết bị đo đạc của tôi, tôi phải sử dụng tùy chọn '-r' (ví dụ: adb shell am instrument -w -r com.myApp/android.test.InstrumentationTestRunner> tests-out.txt) và viết trình phân tích cú pháp của riêng tôi để chuyển đổi đầu ra thành định dạng XML được chấp nhận bởi Hudson.

Nó không phải là hoàn hảo vì nó không cung cấp thời gian, cũng không cung cấp thông điệp đầu ra đăng nhập, nhưng ít nhất tôi bây giờ có báo cáo Hudson trên các bài kiểm tra Android của tôi.

4

FYI, cho bất kỳ ai khác tình cờ gặp phải câu hỏi này. Tôi đã tạo ra một TestRunner mới mà bạn có thể sử dụng trong các dự án thử nghiệm Android của bạn sẽ xuất kết quả thử nghiệm của bạn trong XML có thể đọc được bởi Hudson (và có thể là bất kỳ ứng dụng CI nào khác). Bạn có thể đọc về điều này tại đây: http://droiddudes.com/2010/04/07/athenatestrunner/ hoặc chỉ cần lấy từ đây: http://github.com/dwatling/athena

+0

Cảm ơn bạn đã mở công cụ của mình. Thật không may tôi có một số vấn đề với nó. Đây là bản tóm tắt đầu ra Athena: Tổng số kiểm tra: 22 Tổng số lỗi: 0 (0.0) Tổng số lỗi: 0 (0.0) Tổng thời gian: 70 giây nhưng từ nhật thực tôi nhận được: Chạy 31/31, Lỗi: 3, Lỗi: 4. Bạn có thể giúp tôi với điều này? –

+0

Trong đầu ra của Athena nó hiển thị số lượng bộ kiểm tra tìm thấy và số lượng các bài kiểm tra được tìm thấy trong mỗi bộ.Bạn có thể kiểm tra xem sự khác biệt giữa sự chạy bên trong của Eclipse và trong Athena không? Cụ thể, các bộ và thử nghiệm nào không chạy trong Athena, nhưng được chạy trong Eclipse? – Dan

+0

Một phần của sự khác biệt về tính là do báo cáo Eclipse về (và đang chạy) "testAndroidTestCaseSetupProperly" từ AndroidTestCase. Athena không chạy thử nghiệm đó, nó sẽ chỉ chạy các thử nghiệm được tìm thấy trong các tệp * Test.java. Đây là thứ có thể được cải thiện trong tương lai. – Dan

1

Chúng tôi có vấn đề tương tự trong công ty của chúng tôi. Chúng tôi đã kiểm tra tất cả các giải pháp nguồn mở sẵn có và không có giải pháp nào thực sự hoàn hảo. Vì vậy, chúng tôi đã phát triển và chỉ cần mở nguồn giải pháp cho nó. Tôi vẫn không nói một "cuối cùng" nhưng chắc chắn tốt hơn nhiều so với athena hoặc phóng viên python hoặc bất kỳ phân tích sau thử nghiệm nào. Bạn có thể tìm thấy nó ở đây: http://code.google.com/p/the-missing-android-xml-junit-test-runner/

Nó cung cấp:

  • riêng tập tin XML cho mỗi gói có liên quan
  • file XML được tạo ra trên các thiết bị (cần phải pull'ed adb sau khi kiểm tra)
  • thời gian của các bài kiểm tra được hỗ trợ đầy đủ
  • chúng tôi đã đầy đủ stack trace báo cáo trong trường hợp thất bại/lỗi

Thay vì phân tích mã nguồn java (như trong athena) hoặc phân tích đầu ra (kịch bản lệnh python), chúng tôi đã mở rộng trình điều khiển thiết bị Android. Vì vậy, chúng tôi nhận được tất cả các lợi ích của việc sử dụng các tùy chọn dòng lệnh chuẩn để lựa chọn thử nghiệm, phạm vi cho phép vv - tất cả được mô tả ở đây: http://developer.android.com/guide/developing/testing/testing_otheride.html#RunTestsCommand.

Chúng tôi có thể chạy thành công mã sử dụng quy tắc thử nghiệm chuẩn với phạm vi được phân tích bởi emma, tất cả được báo cáo độc đáo trong Jenkins.

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