2015-05-17 12 views
5

Khi thử nghiệm với Gradle, tôi muốn hiển thị luồng chuẩn trên bảng điều khiển chỉ khi tôi chạy một tập hợp con kiểm tra cụ thể với tùy chọn --tests.Kiểm tra cấp độ: chỉ hiển thị luồng chuẩn với các thử nghiệm cụ thể

Hãy để tôi xây dựng. Trên build.gradle Tôi có

test { 
    testLogging { 
     //showStandardStreams = true 
    } 
} 

Thông thường, khi tôi chạy bộ kiểm tra toàn bộ của tôi, tôi không muốn có giao diện điều khiển đầu ra từ các bài kiểm tra. Nhưng khi tôi đang làm việc trên một thử nghiệm cụ thể, nó rất hữu ích để có đầu ra giao diện điều khiển, vì vậy tôi đi trước và bỏ ghi chú dòng đó trước khi thực hiện kiểm tra đó với gradle test --tests *name.

Tôi muốn biết liệu có cách tự động để thực hiện điều đó hay không.

EDIT: Hãy để tôi làm rõ. Tôi muốn có đầu ra giao diện điều khiển khi tôi chạy gradle test --tests *name, nhưng không phải khi tôi chạy gradle test.

Trả lời

3

Để có được giao diện điều khiển đầu ra trên một số chạy cho tất cả các bài kiểm tra, bạn có thể cung cấp một tham số bổ sung (-Poutput) trên dòng lệnh:

gradle test --tests *name -Poutput

test { 
    onOutput { descriptor, event -> 
     if (project.hasProperty('output')) { 
      logger.lifecycle(event.message) 
     } 
    } 
} 

Để có được giao diện điều khiển đầu ra trên một thử nghiệm cụ thể chỉ:

test { 
    onOutput { descriptor, event -> 
     if (descriptor.name=='YOUR_TEST_METHOD_NAME' && 
       descriptor.className=='YOUR_PACKAGE_QUALIFIED_CLASS_NAME') { 
      logger.lifecycle(event.message) 
     } 
    } 
} 

Xem TestDescriptorTest

+0

Điều này rất hữu ích. Tuy nhiên, bạn không thực sự cho tôi giải pháp tôi muốn. Vui lòng xem câu hỏi đã chỉnh sửa của tôi. Cảm ơn! – emisilva

+0

Tôi đã chỉnh sửa câu trả lời của mình. – tnabeel

+0

không hoạt động với một trong hai chạy gradle hoặc gradle run --tên * tên http://codepad.org/bdzJya6I – emisilva

1

Để tham khảo, tôi đang sử dụng một phương pháp khác sử dụng bằng cách đọc các lá cờ dòng lệnh --info

test { 
    if (project.gradle.startParameter.logLevel == LogLevel.INFO) { 
     testLogging.showStandardStreams = true 
     testLogging.exceptionFormat = 'full' 
    } 
} 

Vì vậy, khi chạy gradle test --info, tôi sẽ xem chi tiết gradle hơn includint đầu ra thử nghiệm. Với thiết lập này, tôi thấy các thông tin khác về gradle như các phiên bản phụ thuộc, có thể hữu ích.

Tuy nhiên tôi nghĩ câu trả lời ở trên cho phép kiểm soát nhiều hơn trên đầu ra thực sự, ví dụ: :

onOutput { descriptor, event -> 
    if (project.hasProperty('output')) { 
     def withoutLastLineFeed = event.message.substring(0, event.message.length() - 1) 
     logger.lifecycle("{} ===> {}", 
         event.destination, 
         withoutLastLineFeed) 
    } 
} 
Các vấn đề liên quan