2012-01-20 34 views
8

thiết lập của tôi là:Làm cách nào để tạo các plugin Jenkins, Sonar và JaCoCo cùng nhau cho các dự án Plugin Tycho của Eclipse (hoặc có thể là Cobertura)?

  • Jenkins 1,448
  • Sonar 2.13
  • Jenkins Sonar Plugin 1,72
  • một cơ sở dữ liệu MySql cho Sonar

Tôi có dự án sau:

  • Dự án trình cắm Eclipse
  • sử dụng Maven
  • nhiều mô-đun (dự án maven phụ huynh, dự án cắm nguồn, dự án đoạn thử nghiệm)
  • một thử nghiệm JUnit đơn giản thử nghiệm một lớp học của các dự án mã nguồn Plugin

gì quá trình này là tại thời điểm:

  • Jenkins kiểm tra ra các dự án cha mẹ từ SVN
  • Jenkins xây dựng các dự án và các module của nó sử dụng Maven và Tycho
  • Jenkins sử dụng chắc chắn để thực hiện các cuộc thử nghiệm và sản xuất một báo cáo
  • Jenkins sử dụng các plugin Jenkins Sonar để bắt đầu sonar mvn: sonar để thực hiện phân tích mã
  • phân tích mã tĩnh được thực hiện trên mỗi module
  • JaCoCo thất bại

Sonar có sẵn số liệu thống kê phân tích mã tĩnh và kiểm tra tỷ lệ phần trăm thành công. Điều duy nhất bị thiếu là phạm vi mã của JaCoCo ... hoặc thậm chí có thể là mã của Cobertura.

Tôi không thực sự quan tâm vào thời điểm này, tôi chỉ muốn một trong những điều này để tạo ra kết quả bảo hiểm mã.

Cobertura có vẻ là không có khả năng tạo ra kết quả có thể vì một trong hai - nó có thể không cụ mã - có vẻ cho mã instrumented tại địa điểm sai - nó không thể đối phó với Tycho hoặc nguồn riêng biệt/mã kiểm tra thiết lập

JaCoCo sẽ có thể "xem" các mã số bảo hiểm một cách nhanh chóng, nhưng sản lượng của nó là

[INFO] [17:44:04.708] Sensor JaCoCoSensor... 
[INFO] [17:44:04.717] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testSource/target/jacoco.exec 
[INFO] [17:44:04.854] Sensor JaCoCoSensor done: 146 ms 

[INFO] [17:44:10.587] Sensor JaCoCoSensor... 
[INFO] [17:44:10.587] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testTest/target/jacoco.exec 
[INFO] [17:44:10.631] Sensor JaCoCoSensor done: 44 ms 

[INFO] [17:44:12.402] Sensor JaCoCoSensor... 
[INFO] [17:44:12.402] Project coverage is set to 0% as build output directory doesn't exists: /var/lib/jenkins/jobs/testPlugin/workspace/testParent/target/classes 
[INFO] [17:44:12.402] Sensor JaCoCoSensor done: 0 ms 

tôi đang làm gì sai? Tôi có cần bật JaCoCo trong tệp pom.xml của mình ở đâu đó không? Tôi có cần chắc chắn không? Tôi cần làm gì để sử dụng Cobertura?

Trả lời

0

Khi mã được thực hiện xong, chắc chắn phải được chạy trên mã cụ thể mà công cụ tạo ra. Tôi đã không sử dụng thiết lập của bạn, nhưng lỗi của bạn có vẻ rất giống với những gì tôi nhận được khi tôi đã nhận được bảo hiểm mã Clover để làm việc; Tôi đã phải chắc chắn để chạy thử nghiệm ra khỏi thư mục mà mã nhạc cụ biên dịch đã được lưu trữ trong.

Ngoài ra, tôi nhận thấy tùy chọn -X trên dòng lệnh Maven là vô giá khi đọc nhật ký của mỗi plugin trong khi xây dựng cho bạn biết chính xác vị trí tìm kiếm bất kỳ thứ gì tìm kiếm.

Edit:

đang instrumented sẽ phải được biên dịch trước khi chắc chắn hơn có thể chạy chống lại nó, vì vậy bạn sẽ muốn để trỏ đến thư mục sau biên soạn và không phải là nguồn instrumented riêng của mình.

+0

Làm thế nào để nói với Sonar hoặc Cobertura hoặc JaCoCo nơi để tìm kiếm mã instrumented? – danowar

3

Tôi đã tìm thấy một trang có dự án nhiều mô-đun tycho ví dụ (các dự án nguồn và thử nghiệm riêng biệt). Sau khi sao chép một số thuộc tính và cấu hình ...

có vẻ như bây giờ tôi sử dụng plugin jacoco maven để tạo báo cáo bảo hiểm mã jacoco và sau đó báo cho Sonar biết tìm báo cáo và sử dụng lại báo cáo ở đâu.

Tại sao trên trái đất không có tài liệu hướng dẫn này? Hay tại sao nó khó tìm?

https://github.com/Godin/sonar-experiments/tree/master/jacoco-examples/tycho-example

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