2012-11-19 29 views
9

Tôi vừa thêm một số xét nghiệm đơn vị Python vào POM Maven hiện có nhưng dường như tôi không thể báo cáo kết quả kiểm tra khi chạy bản dựng.Hiển thị kết quả kiểm tra tùy chỉnh trong công việc Jenkins Maven

Tôi đang chạy nose kiểm tra từ Maven với số exec-maven-plugin trong giai đoạn "thử nghiệm". Các thử nghiệm chạy thành công từ công việc Jenkins và tạo một báo cáo thử nghiệm tương thích xUnit tới target/surefire-reports/TEST-nosetests.xml, nhưng Jenkins không nhận được kết quả.

Điều thú vị là, Maven cũng báo cáo không có kiểm tra chạy trước khi thực hiện các bộ kiểm tra:

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
There are no tests to run. 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[INFO] 
[INFO] --- exec-maven-plugin:1.1.1:exec (nosetests) @ server --- 
[INFO] ................ 
[INFO] ---------------------------------------------------------------------- 
[INFO] Ran 16 tests in 194.799s 
[INFO] 
[INFO] OK 
[INFO] Registering compile source root /Volumes/Data/workspace/myProject/target 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 

Vì vậy, đây là một vấn đề với Jenkins không nhìn thấy kết quả, hoặc với Maven không điều trị bộ kiểm tra của tôi như kiểm tra thực tế?

Trả lời

18

Tôi đã khắc phục sự cố này bằng cách sử dụng "dự án phần mềm kiểu tự do" trong Jenkins thay vì dự án "maven2/3".

New Project

Dưới Build, chọn Thêm xây dựng bước và cấu hình các dự án để Gọi top-level Maven nhắm. Tôi đang sử dụng mục tiêu kiểm tra.

Invoke top-level Maven targets

Cuối cùng, dưới Post-xây dựng Actions chọn Thêm sau xây dựng hành động của Publish JUnit kết quả kiểm tra báo cáo và trỏ nó tại đầu ra xUnit từ các bài kiểm tra của bạn. Tùy chọn này không có sẵn cho công việc Maven 2/3 vì lý do nào đó.

Publish JUnit test result report

+3

Tôi nghĩ là có liên quan đến lỗi JENKINS-9980. https://issues.jenkins-ci.org/browse/JENKINS-9980 – Jmini

-1

Như bạn có thể thấy trong kết quả chạy thử nghiệm mà Maven không nhận ra các bài kiểm tra làm bài kiểm tra. Hơn nữa để xem kết quả trong Jenkins bạn cần phải kiểm tra xem nope có thể tạo ra các tập tin kết quả đầu ra tương thích junit (mà tôi giả định) mà có thể được đọc bởi jenkins và tất nhiên hiển thị.

+1

Nose có thể tạo ra tương thích, như tôi đã nói trong câu hỏi. Vấn đề là tôi không thể có được Maven để xem đầu ra để báo cáo nó cho Jenkins. Câu trả lời của riêng tôi cho thấy làm thế nào để có được xung quanh Maven và nhận Jenkins để xem báo cáo trực tiếp. – bpanulla

2

Để xây dựng dựa trên câu trả lời của bpanulla, nếu bạn có các bài kiểm tra trong nhiều hơn một thư mục con của dự án của bạn, bạn có thể sử dụng một ký tự đại diện trong "XMLs báo cáo Test" lĩnh vực, chẳng hạn như: **/target/surefire-reports/*.xml

+0

điều này làm việc cho tôi cảm ơn – Chandru

1

Nếu bạn có thiết lập Jenkins kiểu mô-đun hơn bằng cách sử dụng dự án miễn phí sẽ không xây dựng mô-đun con đúng cách. Nếu maven-plugin tạo id thực thi báo cáo là e2eTests, thì hãy thêm đoạn mã sau vào tệp pom.xml của bạn và plugin maven jenkins sẽ quản lý phần còn lại!

<properties> 
    <jenkins.e2eTests.reportsDirectory>target/protractor-reports</jenkins.e2eTests.reportsDirectory> 
</properties> 

Xem https://wiki.jenkins-ci.org/display/JENKINS/Building+a+maven2+project

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