2012-12-14 30 views
26

Tôi nhận được lỗi "Đã tìm thấy báo cáo thử nghiệm nhưng không có báo cáo nào trong số đó là mới. Các thử nghiệm đã chạy chưa?" khi cố gắng gửi kết quả kiểm tra đơn vị qua email. Lý do là tôi có một công việc Jenkins chuyên dụng để nhập các tạo phẩm từ một công việc thử nghiệm cho chính nó và gửi kết quả kiểm tra qua email. Lý do tại sao tôi làm điều này là bởi vì tôi không muốn Jenkins gửi tất cả email của các nhà phát triển trong đêm :) vì vậy tôi "post-poning" email gửi đi vì chính Jenkins không hỗ trợ thông báo email chậm (đáng buồn).Cách khắc phục "Báo cáo thử nghiệm đã được tìm thấy nhưng không có báo cáo nào trong số đó là mới. Các thử nghiệm có chạy không?" trong Jenkins

Tuy nhiên, vào thời điểm thực hiện công việc "gửi kết quả kiểm tra qua email", các thử nghiệm là giờ cũ và tôi nhận được lỗi như được chỉ định trong tiêu đề câu hỏi. Bất kỳ ý tưởng về cách để có được xung quanh vấn đề này?

Trả lời

39

Bạn có thể thử cập nhật dấu thời gian của báo cáo thử nghiệm dưới dạng bước xây dựng ("Thực thi tập lệnh shell"). Ví dụ.

cd path/to/test/reports 
touch *.xml 
+0

Nhờ Tuyệt vời nó làm việc – kobe

+0

Lưu ý rằng điều này có thể dẫn Jenkins để tin rằng các bài kiểm tra loại bỏ đã được thực hiện, nếu một thử nghiệm được loại bỏ nhưng các báo cáo thử nghiệm được lưu giữ. –

+0

@ DavidPärsson - giải pháp? Làm sạch các bài kiểm tra đầu ra dir? – KarlP

5

Cập nhật ngày sửa đổi cuối cùng cũng có thể đạt được trong gradle bản thân là mong muốn:

task jenkinsTest{ 
    inputs.files test.outputs.files 
    doLast{ 
     def timestamp = System.currentTimeMillis() 
     test.testResultsDir.eachFile { it.lastModified = timestamp } 
    } 
} 

build.dependsOn(jenkinsTest) 

Như đã đề cập ở đây: http://www.practicalgradle.org/blog/2011/06/incremental-tests-with-jenkins/

+0

Ngoài ra, như cảnh báo gradle, 'testResultsDir' không được dùng nữa và sẽ bị xóa trong Gradle 2.0. Sử dụng 'getReports(). GetJunitXml(). GetDestination()' để thay thế. – ugo

1

Execute con đường cd/to/kiểm tra/báo cáo liên lạc * .xml

không hoạt động đối với tôi, nhưng chạy lệnh sau hoạt động:

kiểm tra sạch mvn qua bảng điều khiển hoặc qua jenkins.

Điều này tạo ra các báo cáo thử nghiệm mới.

0

Đảm bảo rằng bạn đã đề cập đến đường dẫn chính xác đối với "Báo cáo thử nghiệm XML" trong cấu hình jenkins, chẳng hạn như "target/surefire-reports/*. Xml" Không cần chạm * .xml như jenkins won ' t khiếu nại mặc dù kết quả thử nghiệm tập tin xml không thay đổi.

0

nếu bạn sử dụng Windows nô lệ, bạn có thể 'cảm ứng' kết quả sử dụng giai đoạn đường ống groovy với PowerShell:

powershell 'ls "junitreports\\*.*" | foreach-object { $_.LastWriteTime = Get-Date }' 
Các vấn đề liên quan