2011-01-16 23 views

Trả lời

9

Ứng dụng thử nghiệm "công cụ" mục tiêu hoặc ứng dụng chính.

Phần thiết bị đo trong AndroidManifest.xml của dự án thử nghiệm cho phép các thử nghiệm chạy trong cùng một quá trình với ứng dụng. Tính năng thiết bị này cho phép ứng dụng thử nghiệm bước qua vòng đời thành phần android theo cách được kiểm soát.

Việc kiểm soát này cho phép bạn (ví dụ) tạo các kiểm tra lặp lại cho các trường hợp cho vòng đời hoạt động (tạo, tiếp tục, tạm dừng, hủy).

http://developer.android.com/guide/topics/testing/testing_android.html#Instrumentation

Vì vậy, trong bản tóm tắt thấy, việc áp dụng thêm có sức mạnh đặc biệt so với mục tiêu thử nghiệm. Vì chúng được đóng gói trong ứng dụng thử nghiệm, ứng dụng thực của bạn chỉ cần có các quyền mà nó yêu cầu để thực hiện nhiệm vụ của nó.

+0

Không chắc chắn điều này là đúng, từ quyền kinh nghiệm của tôi được sử dụng trong thử nghiệm phải được khai báo trong bản kê khai mục tiêu thử nghiệm (mà là khá nghèo nếu bạn hỏi tôi) – zode64

+0

Đúng là một số thư viện kiểm tra yêu cầu mục tiêu có quyền bổ sung. Ví dụ, tôi nghĩ rằng Robotium được sử dụng để yêu cầu sự cho phép để xem những quy trình đang chạy. Tôi sử dụng robotium và đồng ý rằng điều này không lý tưởng. Tuy nhiên, robotium không còn xuất hiện để yêu cầu điều này. Tôi giả sử rằng kể từ khi ứng dụng thử nghiệm chạy như một phần của quá trình ứng dụng đích, nó sử dụng các quyền của mục tiêu. Bạn có thể cụ thể hơn về trải nghiệm của mình không? Câu trả lời của tôi là cho câu hỏi "tại sao nó đã được quyết định để di chuyển các bài kiểm tra cho một dự án riêng biệt". – byeo

+0

Một ví dụ đơn giản, tôi có ứng dụng A và dự án thử nghiệm B để kiểm tra ứng dụng A.Nếu tôi muốn sử dụng internet trong dự án thử nghiệm B để xác minh một kết quả (tôi biết, đó là một thử nghiệm nghèo) nhưng App A không có quyền truy cập internet tôi phải thêm vào App A anyway do đó đưa ra một sản xuất ứng dụng không cần thiết cho phép là sai. được xem là dự án thử nghiệm có biểu hiện riêng của nó sẽ tốt hơn để có thể xác định các quyền kiểm tra cụ thể trong đó, mặc dù tôi hiểu ở mức độ thấp, điều này sẽ rất khó – zode64

0

Tôi nghĩ rằng theo cách này bạn có thể thực hiện hai ứng dụng riêng biệt, một ứng dụng là một ứng dụng thông thường và một để kiểm tra nó. Nếu bạn muốn xuất bản ứng dụng của mình, bạn không cần phải cung cấp cho mọi người bài kiểm tra của mình. Nhưng có lẽ nó đã được thực hiện cho mục đích tốt hơn!

+0

Có điều này được thực hiện để mã kiểm tra là không được xây dựng vào ứng dụng riêng của mình, cho phép mã thử nghiệm được chạy trên phiên bản sản xuất cuối cùng của ứng dụng mà không phải tăng kích thước ứng dụng với tất cả mã thử nghiệm được tích hợp vào nó. – hackbod

+0

Xin lưu ý rằng bạn * có thể * xây dựng các bài kiểm tra của bạn trực tiếp vào ứng dụng của bạn, không có gì ngăn cản điều đó. Không có lý do chính đáng nào để làm như vậy, vì mã kiểm tra liên kết đến mã ứng dụng nên có toàn quyền truy cập vào nó. – hackbod

+1

Nhưng nó được nêu trên trang web dev android rằng "cách tiếp cận tốt nhất là thêm dự án thử nghiệm để kiểm tra thư mục gốc của nó/ở cùng cấp với thư mục src/của dự án của ứng dụng chính." nghĩa là các bài kiểm tra được tích hợp vào ứng dụng. – Eugene

1

Các tài liệu hiện hành, như tôi đã giải thích nó, nói rằng bạn nên giữ mã kiểm tra vào một dự án riêng biệt trong thư mục "kiểm tra" bên trong dự án applicaton => "Một dự án trong một dự án"
http://developer.android.com/guide/topics/testing/testing_android.html#TestProjects

Làm sao ?
Creating an Android Test project in Eclipse

Tại sao?
Thay vì cũ. 40 dự án bạn có 20 dự án => tổng quan tốt hơn, ít bảo trì hơn, nhật thực nhanh hơn.
Hai build.xml => CI dễ dàng xây dựng với Jenkins
Hai file manifest => các phiên bản tương lai của ADT xây dựng công cụ này sẽ hỗ trợ biểu hiện sáp nhập

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