2014-05-22 19 views
16

Chúng tôi sử dụng Junit làm khung kiểm tra. Chúng tôi có nhiều dự án. Chúng tôi sử dụng gradle (Version 1.12) như một công cụ xây dựng. Để chạy thử nghiệm đơn vị parallelly bằng cách sử dụng gradle, chúng tôi sử dụng kịch bản dưới đây trong mọi dự án theo nhiệm vụ kiểm tra.Chạy tác vụ thử nghiệm song song bằng cách sử dụng gradle

maxParallelForks = Runtime.runtime.availableProcessors() 

Ex:

test {  
     maxParallelForks = Runtime.runtime.availableProcessors()  
    } 

Chúng tôi duy trì cũng nộp gradle.properties duy nhất. Có thể định nghĩa test.maxParallelForks = Runtime.runtime.availableProcessors() trong tệp gradle.properties thay vì xác định trong mỗi tệp build.gradle trong tác vụ thử nghiệm không?

Trả lời

26

$rootDir/build.gradle:

subprojects { 
    tasks.withType(Test) { 
     maxParallelForks = Runtime.runtime.availableProcessors() 
    } 
} 
+0

Tài liệu hướng dẫn tốt nghiệp FYI cho thấy không sử dụng tất cả các lõi có sẵn https://gradle.github.io/performance-guide/#_parallel_test_execution Xem câu trả lời của tôi bên dưới – kellyfj

+2

Liên kết ở trên không hoạt động. Hãy thử https://docs.gradle.org/current/userguide/java_plugin.html#sec:test_execution –

+0

Dưới đây là lỗi mà tôi nhận được. Lỗi: (69, 0) Không thể đặt thuộc tính không xác định 'maxParallelForks' cho vùng chứa cấu hình thuộc loại org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer. Open File fobbymaster

14

Câu trả lời được chấp nhận trên công trình nhưng các tài liệu gradle here gợi ý bạn sử dụng

maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 

tôi đã cố gắng cả hai và sau khi thử nghiệm cả trên 2.3 GHz Intel Core i7 Mac Book Pro với RAM 16 GB (4 lõi có siêu phân luồng)

maxParallelForks = Runtime.runtime.availableProcessors() 

maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 

Phương pháp được đề xuất bởi tài liệu Gradle sản xuất thời gian đáp ứng nhanh hơn cho bộ phận kiểm tra của chúng tôi: 7 phút so với 8 phút (so với 13 phút đầu tiên). Ngoài ra, CPU Mac của tôi không bị mắc kẹt và quạt không khởi động.

Tôi cho rằng có tranh cãi về tài nguyên được chia sẻ - ngay cả khi nó chỉ là máy mà chúng tôi đang chạy thử nghiệm đơn vị.

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