2016-07-04 15 views
6

Tôi cho rằng Android Studio sẽ chạy thử nghiệm trước khi tạo apk đã ký.Tôi làm cách nào để chạy thử nghiệm trước khi tạo gói ứng dụng đã ký?

Nhưng AS đã không làm điều đó đối với tôi. Nó không tốt trước khi gói gói ứng dụng của tôi, tôi cần tự chạy thử nghiệm.

Tôi không chắc chắn nếu phụ thuộc vào hoặc cách khác có thể giúp tôi. Tôi không chắc thời tiết build.gradle của tôi có lỗi.

Một số mã có liên quan trong gradle có lẽ như thế này:

defaultConfig { 
    applicationId "com.xx.xx" 
    versionCode getDefaultVersionCode() 
    minSdkVersion 19 
    targetSdkVersion 19 
} 
dependencies { 
    testCompile 'org.robolectric:robolectric:3.0' 
    testCompile 'junit:junit:4.12' 
} 

tôi đã không viết testOption.

thư của tôi là như thế này (nội dung trước khi chúng là tên gói):

enter image description here

Trả lời

2

Tôi không quen thuộc với sự phát triển Android, nhưng tôi nghĩ rằng bạn có thể đạt được ý định của bạn với việc thêm một nơi nào đó trong bạn build.gradle:

sign.dependsOn test 

đâu dấu là việc ký kết nhiệm vụ apk (cùng tên, kể từ nhiệm vụ gradle).

5

Để chạy tất cả các xét nghiệm có sẵn, khi xây dựng một thông cáo, làm nhiệm vụ, đó là xây dựng các phiên bản (ví dụ assembleRelease) phụ thuộc vào các nhiệm vụ kiểm tra:

android { 
    // ... 
} 
afterEvaluate { 
    assembleRelease.dependsOn testReleaseUnitTest, connectedAndroidTest 
} 

Việc đóng cửa afterEvaluate được thực hiện sau khi đánh giá (khi nhiệm vụ android đã được tạo). Tại thời điểm này, các tác vụ android có thể được tham chiếu dưới dạng biến.

Thay vì testReleaseUnitTest bạn chỉ có thể sử dụng test, chạy thử nghiệm đơn vị cho tất cả các biến thể.

Hãy nhớ rằng theo mặc định không có kiểm tra thiết bị cho phiên bản release của ứng dụng của bạn (được xây dựng với assembleRelease). Vì vậy, trong ví dụ trên, connectedAndroidTest chỉ chạy thử nghiệm thiết bị cho phiên bản debug.

+0

Tên "kiểm tra" luôn là "kiểm tra" hoặc tên của tôi? ** assembleRelease.dependsOn ** ** test ** đã chạy nhưng ** tạo apk đã ký ** không dừng lại? – user2545386

+1

Hmm, tôi tìm thấy khi tôi viết như thế này ** assembleFlavorRelease dependsOn test **, sau đó nó làm việc.Tôi nghĩ rằng mỗi ** assembleFlavorRelease ** tùy thuộc vào thử nghiệm không phải là một ý tưởng tốt. Làm thế nào tôi nên làm điều đó? – user2545386

+0

rất đẹp. cảm ơn bạn. – dit

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