nềnconnectedAndroidTest trên nhiều giả lập
Tôi muốn chạy thử nghiệm Android instrumented tôi trên Jenkins trên giả lập khác nhau. Giả sử tôi có 100 bài kiểm tra và 4 trình giả lập, tôi muốn chạy 25 bài kiểm tra trên mỗi bài kiểm tra.
tôi thực hiện ./gradlew connectedDebugAndroidTest
song song Jenkins đường ống cho 4 giả lập
stage('Instrumented Tests') {
parallel(
emu1: {
runInstrumentedTestOnEmu(...)
},
emu2: {
runInstrumentedTestOnEmu(...)
}
...
)
}
connectedDebugAndroidTest
sẽ đẻ trứng lệnh khác để thiết lập môi trường cho chạy thử nghiệm instrumented.
...
:app:transformNativeLibsWithMergeJniLibsForDebugAndroidTest
:app:processDebugAndroidTestJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForDebugAndroidTest
:app:validateSigningDebugAndroidTest
:app:packageDebugAndroidTest
:app:assembleDebugAndroidTest
:app:connectedDebugAndroidTest
Và khi môi trường sẵn sàng thì nó sẽ bắt đầu chạy thử nghiệm trên trình giả lập.
Tôi không muốn chạy các thủ tục này cho tất cả các cuộc gọi song song của tôi (trong trường hợp này nó sẽ là 4 trong số đó), bởi vì rõ ràng tôi đang làm công việc chính xác nhiều lần. Về mặt lý thuyết, tùy chọn tốt nhất là thực hiện thiết lập trước parallel
và khi mọi thứ đã sẵn sàng để chạy thử nghiệm, sau đó đi vào các bước kiểm tra bắt đầu từng bước và bắt đầu trên mỗi trình giả lập.
Câu hỏi
Có thể thực hiện tất cả các bước trước thiết lập của connectedDebugAndroidTest
mà không thực hiện bản thân?
Ngoài ra, nếu tôi chạy connectedDebugAndroidTest
song song trên 4 trình mô phỏng sự cố xây dựng, vì gradle cố gắng đọc tệp từ thư mục intermediate
, khi xây dựng song song khác đã xóa tệp đó.
Bạn có thể xem this test project in github với thiết lập được đề cập ở trên.