Ứng dụng Android của chúng tôi cần thử nghiệm tự động và nhóm của chúng tôi đang sử dụng Robotium để xử lý điều đó cho chúng tôi. Đây không phải là vấn đề đối với các bài kiểm tra đơn vị, nhưng chúng tôi cũng đang viết một tập hợp các bài kiểm tra tích hợp đầu cuối để tập thể dục không chỉ cho khách hàng bởi các máy chủ back-end. Tôi đã có một số xét nghiệm để thực hiện điều này, nhưng nếu có thể, tôi muốn tách riêng chúng ra khỏi các bài kiểm tra đơn vị để các tích hợp liên tục của chúng ta không yêu cầu máy chủ đang chạy để hoàn thành.Làm cách nào để thực hiện Kiểm tra Tích hợp trên Android với Hệ thống Xây dựng Gradle mới?
Chúng tôi đang sử dụng hệ thống xây dựng Gradle mới sáng bóng. Tôi tự hỏi nếu tôi có thể làm một cái gì đó giống như một hương vị chỉ thử nghiệm hoặc một tiểu dự án phụ thuộc vào APK cha mẹ để làm cho nó đi. Tôi đã thử làm cho công việc này với một dự án riêng biệt hoàn toàn bằng cách sử dụng các hướng dẫn Robotium để thử nghiệm một bản sửa lỗi mã nguồn ít, nhưng nó không hoạt động. Có lẽ vì tôi đang ở trên phần cứng thực sự và không phải là một trình giả lập. Tôi đã có may mắn với giả lập, ngay cả với việc tăng tốc phần cứng được cài đặt.
Bất kỳ lời khuyên nào hoặc tôi có nên giữ hơi thở và cuộn với các bản dựng của mình yêu cầu máy chủ tích hợp khả dụng khi các bản dựng đang diễn ra không?
Tôi đã làm việc đó. Những gì tôi muốn là một cách để tách biệt các bài kiểm tra tích hợp phụ thuộc vào máy chủ của tôi từ thử nghiệm không phụ thuộc vào máy chủ của tôi để Jenkins không yêu cầu máy chủ sản phẩm đang chạy hoạt động. – Argyle
Ah, tôi hiểu rồi. Trong trường hợp đó, hãy xem xét tạo một nguồn tùy chỉnh trong 'build.gradle' được gọi là' integrationTest'. Sau đó bạn sẽ có 'compileIntegrationTest' có sẵn cho bạn trong phần đóng của phụ thuộc của bạn, nơi bạn có thể thêm robotium. Thêm một nhiệm vụ để chạy các bài kiểm tra tích hợp này. Bằng cách chỉ định một sourceSet 'gradle build' tùy chỉnh sẽ không chạy chúng theo mặc định. Để chạy chúng, bạn sẽ cần phải thêm một nhiệm vụ tùy chỉnh. Tôi sẽ sửa lại câu trả lời của mình bằng một số nguồn. – Joe
Nó sẽ không phải là 'instrumentTestCompile'? –