Tôi chuyển công việc của mình từ một máy Hudson sang môi trường Jenkins đa nô lệ và bây giờ bảo hiểm JaCoCo không còn hoạt động nữa."Phạm vi dự án được đặt thành 0%" - JaCoCo và Sonar ở Jenkins với Ant
LÀM VIỆC (cũ): Hudson 2.0.1, Jenkins Sonar Plugin 1.7.1, Sonar 2.1.2
GÃY (mới): Jenkins 1,446, Jenkins Sonar Plugin 1.7.2, Sonar 2.1.2
Công việc Hudson của tôi được gọi là Pinnacle và nó được sử dụng để chạy trên một máy chủ Hudson với Sonar trên cùng một máy. Tôi đã thiết lập bản dựng (KHÔNG MAVEN) của tôi bằng cách làm như sau.
1) Thêm một mục tiêu Ant build.xml tôi gọi test-with-coverage
2) Cấu hình công việc Pinnacle tại Hudson để "gọi Phân tích Sonar độc lập" với các đặc tính này:
sonar.projectKey=com.skyboximaging:pinnacle
sonar.projectName="Pinnacle"
sonar.projectVersion=1.0
sources=Pinnacle/src/java
tests=Pinnacle/test/java
binaries=Pinnacle/classes
sonar.jacoco.reportPath=Pinnacle/jacoco.exec
sonar.jacoco.antTargets=test-with-coverage
(Lưu ý rằng mã được kiểm tra vào thư mục Pinnacle trong không gian làm việc Jenkins.)
3) Cấu hình Sonar "cài đặt chung" để sử dụng JaCoCo cho phạm vi mã
Mọi thứ hoạt động tốt đẹp!
Nhưng trong môi trường Jenkins mới, tôi thấy lỗi này trong Jenkins xây dựng đầu ra:
23:15:17.863 INFO Sensor JaCoCoSensor...
23:15:17.868 INFO Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/workspace/Pinnacle/Pinnacle/jacoco.exec
Đó tập tin không tồn tại trên các nô lệ nơi xây dựng chạy. (Thư mục/var/lib/jenkins/không gian làm việc/Pinnacle/Pinnacle hiện tồn tại.)
Tất cả các cảm biến khác (FindBugs, PMD, v.v ...) có vẻ hoạt động OK. Chỉ cần JaCoCo bị hỏng.
Sonar/JaCoCo có hoạt động trong môi trường Jenkins đa nô lệ không?
Tôi nghi ngờ rằng nhiệm vụ Ant test-with-coverage
không hoạt động. Sonar định vị tệp build.xml như thế nào? Và những gì là khác nhau giữa cài đặt cũ và mới?
Cảm ơn! Con trỏ để thiết lập sonar.jacoco.reportPath là bit cuối cùng tôi cần để có được sonar ant đa dự án của tôi để tải dữ liệu vùng phủ sóng một cách chính xác. –
@ Jason: nếu tôi đang sử dụng sahi thay vì báo cáo junit thì tôi có thể sử dụng báo cáo sahi (có trong html) trong sonar.surefire.reportsPath không – vinod