2012-10-12 72 views
8

Tôi có một dự án trong Jenkins rằng tôi muốn tạo một báo cáo bảo hiểm mã JaCoCo. Nếu tôi chạy jacoco:test thì jacoco:report tại địa phương, nó sẽ tạo các tệp chính xác (.exec, .classes và sources) trong myproject/target/scala-2.9.1/jacoco để nó hoạt động.Jenkins và JaCoCo với sbt

Tuy nhiên khi xây dựng trên jenkins, điều này chỉ tạo thư mục lớp nghĩa là nó chọn mã chứ không phải kiểm tra bao gồm nó để tôi nhận được độ phủ mã 0%.

Có ai có jacoco làm việc với sbt theo cách này không?

Trả lời

0

Bạn không cung cấp nhiều thông tin về cấu hình công việc Jenkins của bạn, vì vậy tôi đưa ra một số giả định, nhưng bạn có thể thêm/thực hiện nhiều bước xây dựng trong một công việc Jenkins. Xây dựng các bước chạy những thứ như chạy Maven hoặc chạy bất kỳ tập lệnh tùy ý nào. Bước xây dựng đầu tiên có thể là bước xây dựng Maven thực hiện "jacoco: test jacoco: report" để chạy Jacoco và sau đó bước xây dựng thứ hai có thể là bất cứ thứ gì bạn chạy đang tìm kiếm tệp jacoco.exec.

2

Tôi đã gặp sự cố tương tự này khi cố bắt đầu một dự án Scala mới. Sau khi thử một số cấu hình đường dẫn, tôi đã có thể tìm ra một giải pháp.

Giá trị mặc định cho thư mục Đường dẫn đến lớp là **/classes. Tôi nghi ngờ vấn đề là mẫu cho phép kết hợp target/scala-X.XX/classes/target/scala-X.XX/jacoco/classes/.

Thay đổi đường dẫn thư mục lớp thành target/*/classes cho phép trình cắm Jenkins bắt đầu báo cáo thông tin bảo hiểm chính xác.

+0

Đáng kinh ngạc! Nhờ bài viết này tôi thấy rằng tôi cần sử dụng '**/target/*/classes'. – kilo

+0

Tôi đang đối mặt với cùng một vấn đề. Bạn có thể vui lòng cho biết chi tiết về thuộc tính nào chúng tôi cần đặt "target/*/classes" không? –