7

Chúng tôi quyết định cung cấp cho Spock một thử làm khung kiểm tra cho ứng dụng EE dựa trên java của chúng tôi. Hiện tại chúng tôi có một cơ sở hạ tầng CI được triển khai dựa trên jenkins + maven + jacoco.Thực hành tốt nhất tích hợp Spock với Jenkins, Sonar

Q: câu hỏi là cách tốt nhất để tích hợp spock với tất cả điều này là gì? Bất kỳ đề xuất, phương pháp hay nhất nào?

Trả lời

4

Với chuỗi công cụ của bạn, thứ duy nhất khác với Java/JUnit là tạo công việc biên dịch Groovy (thử nghiệm) trong Maven (xem dự án spock-example). Ngoài ra, bạn không cần phải làm bất cứ điều gì đặc biệt, vì Spock chỉ là một vận động viên JUnit tùy chỉnh được kích hoạt tự động. Bạn sẽ nhận được các báo cáo tương tự, vv Bạn thậm chí có thể kiểm tra Spock và JUnit trong cùng thư mục nguồn và chạy chúng cùng nhau.

+2

Theo nhận xét của tôi về câu trả lời của Aaron McDowell, bạn cũng nên cài đặt plugin Groovy trên máy chủ SonarQube để Sonar biết về các tệp kiểm tra Groovy của bạn. –

2

Thực ra bạn có thể gặp sự cố khi tích hợp với Sonar. Các Sonar Surefire cảm biến thành công sẽ tìm thấy báo cáo chắc chắn của bạn; tuy nhiên, cảm biến cố gắng liên kết với nguồn thử nghiệm để xuất bản lên Sonar. Khi nó thực hiện điều này, nó giả định một phần mở rộng tập tin của .java. Vì vậy, bạn sẽ thấy kết quả trong xây dựng của bạn trông như thế này:

[INFO] [13: 00: 34,734] Sensor SurefireSensor ...
[INFO] [13: 00: 34,735] phân tích cú pháp/home/amcdowel/accurev/projectFoo/target/surefire-báo cáo
[WARN] [13: 00: 34,747] Resource không tìm thấy: com.abc.monitor.app.model.MonitorTest

Các mã số bảo hiểm được tạo ra bởi bạn Các bài kiểm tra Spock sẽ được báo cáo thành công trong bảng điều khiển Sonar của bạn, nhưng số lượng bài kiểm tra đơn vị và số lượng thành công/lỗi sẽ không được bao gồm.

+1

Có vẻ như điều này không đúng nếu bạn cài đặt plugin Groovy trong máy chủ SonarQube. Tôi đã có thể nhận được các bài kiểm tra Groovy (Spock) của dự án của tôi để hiển thị bằng cách cài đặt plugin, cập nhật thuộc tính sonar.tests để bao gồm thư mục nguồn Groovy của tôi và chạy lại nhiệm vụ Sonar Maven. ' src/test/java, src/test/groovy' –