Tôi đã sửa đổi dự án của mình để trở thành đa nền tảng.Gradle: Làm thế nào để chạy thử nghiệm từ một phụ thuộc mô-đun?
Trạng thái trước: Chỉ một mô-đun (dự án) với một build.gradle. Tất cả các bài kiểm tra đều nằm trong thư mục kiểm tra và khi tôi chạy gradlew testDebug
tất cả 500 bài kiểm tra của tôi đang chạy.
New trạng: tôi có một dự án gradle chính mà không làm bất cứ điều gì nhưng giữ 3 module
- lõi
- androidversion
- rasberryPiVersion
Mỗi các mô đun có tệp gradle riêng nhưng chỉ có thể xây dựng mô-đun android và rasberryPi. Trong các phụ thuộc của chúng (trong tệp build.gradle tương ứng), chúng biên dịch dựa vào mô-đun "lõi". Như thế này:
dependencies {
compile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
Tất cả 500 bài kiểm tra của tôi bây giờ là cốt lõi. Vì vậy, khi tôi làm gradlew clean assembleDebug testDebug
trên mô-đun Android, không có kiểm tra nào được phát hiện và thư mục kết quả thử nghiệm trống.
Tôi cố gắng để chạy lệnh testDebug
trên mô-đun lõi trực tiếp, nhưng vì nó không xây dựng bởi chính nó, tôi nhận được lỗi:
FAILURE: Build failed with an exception.
* What went wrong:
Task 'testDebug' not found in project ':core'.
Vì vậy, câu hỏi của tôi là: Có cách nào, trong gradle, để nói cho "testDebug" lệnh để chạy tất cả các bài kiểm tra đó là phụ thuộc vào mô-đun của nó (lõi)?
Tôi cũng đã cố gắng thêm một testCompile trong sự phụ thuộc của mô-đun android nhưng nó không làm việc, như thế này:
dependencies {
compile project(':clapcore')
testCompile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
Cảm ơn!
EDIT Tôi đã phát hiện ra rằng tôi có thể làm lệnh gradlew build
trên lõi và nó sẽ chạy thử nghiệm trong 'lõi' module. Nhưng tôi muốn một cách để chạy thử nghiệm bằng cách "thác" nếu có thể.
* EDIT 2 * Tôi đã phát hiện ra rằng tôi có thể làm lệnh gradlew buildNeeded
trên mô-đun 'android' và nó sẽ làm một xây dựng cho mô-đun android và lõi. Thật không may, nó chỉ xây dựng trong bản phát hành! Nếu ai đó có thể chỉ cho tôi một cách để sử dụng chức năng này nhưng trong gỡ lỗi, nó sẽ là tuyệt vời. Tôi cần nó trong gỡ lỗi bởi vì việc phát hành xây dựng khởi động nhiều nhiệm vụ hơn như thay đổi của phiên bản, cam kết git, đẩy, vv ... Điều này chỉ cho một xây dựng hàng đêm, vì vậy nó cần phải được gỡ lỗi.