Ngoài việc sử dụng Bamboo để tạo APK cho dự án Android của mình, tôi cũng muốn sử dụng Bamboo để chạy các thử nghiệm dựa trên JUnit dựa trên trình giả lập Android. Sau một chút "thử nghiệm và lỗi" chủ yếu xung quanh việc tìm kiếm một cách đáng tin cậy để bắt đầu và dừng trình giả lập Android, đây là những gì tôi nghĩ ra cho kế hoạch xây dựng Bamboo của tôi. Xem Bamboo waits for script task to terminate, although it is run in the background để biết thêm thông tin cơ bản về lý do tại sao tôi thực hiện phương pháp được mô tả bên dưới.
Gói tre của tôi có một giai đoạn với hai công việc. Các công việc chạy bằng hai tác nhân thực thi trên cùng một hệ thống. Cả hai công việc đều bắt đầu và chạy song song. Một công việc bắt đầu trình mô phỏng Android bằng cách sử dụng lệnh giả lập SDK Android. Công việc khác chờ bộ mô phỏng bắt đầu, xây dựng ứng dụng di động, chạy các kiểm tra đối với trình giả lập và sau đó dừng trình mô phỏng đang chạy bằng cách sử dụng tác vụ cuối cùng luôn được thực thi ngay cả khi tác vụ trước đó trong công việc xây dựng thất bại.
Công việc giả lập không bị "kẹt" sau khi khởi chạy trình mô phỏng vì nó đang chờ quá trình giả lập kết thúc. Khi công việc xây dựng chạy, nhiệm vụ cuối cùng trong công việc xây dựng sẽ dừng trình mô phỏng làm cho công việc giả lập kết thúc vì quá trình giả lập không còn chạy nữa.
Dưới đây là các chi tiết nhiệm vụ trọng tâm cho công việc xây dựng:
nhiệm vụ đầu tiên là một nhiệm vụ kịch bản mà chờ đợi cho các giả lập để bắt đầu. Lệnh adb -s dưới đây sẽ không làm cho tác vụ này thất bại nếu giả lập không khởi động được.
echo "Waiting 60 seconds for the Android emulator to start"
sleep 60
echo "See if Emulator is up and running"
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 shell getprop dev.bootcomplete
Nhiệm vụ thứ hai và thứ ba kiểm tra nguồn và tạo ứng dụng bằng Gradle. Việc xây dựng chạy các bài kiểm tra JUnit đối với trình giả lập đang chạy.
Tác vụ thứ tư được cấu hình là tác vụ cuối cùng là tác vụ tập lệnh dừng trình mô phỏng.
echo "Stopping the Android emulator"
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 emu kill
Bạn có thể chia sẻ hướng dẫn xây dựng dự án Android bằng cách sử dụng gradle tại đây hay không. – CoDe
Chúng tôi đã cài đặt trình cắm thêm JFrog Artifactory vào tre, nó có một tác vụ hoàn thiện. Bạn không cần phải sử dụng JFrog để sử dụng. Sau đó bạn có thể chỉ cần nói tên tác vụ theo các loại nhiệm vụ "clean assembleDebug" – bhawkins
Điều đó tôi đã thử nhưng có điều gì đó không ổn. Thời gian qua khi tôi thử điều này, ít nhất là xây dựng đã bắt đầu và ném đầu ra thất bại, nhưng lần này không có gì xảy ra. Hãy để tôi kiểm tra bên cạnh tôi, sẽ sớm quay trở lại bạn. – CoDe