43

Các công cụ bảo hiểm mã có sẵn cho Scala là gì?Công cụ Bảo hiểm Mã cho Scala

Tôi có các kiểm tra đặc tả Scala và thiết lập tích hợp liên tục Hudson. Có cái gì tôi có thể móc vào thiết lập này để đo lường và theo dõi phạm vi mã?

+3

thật tuyệt với tôi rằng điều này đã bị đóng không mang tính xây dựng. heck, 33 người upvoted nó.6 người trả lời nó với tổng cộng 43 upvotes. nhưng bằng cách nào đó nó không mang tính xây dựng cho cộng đồng? 'cmon, y'all. với sự tôn trọng tối đa và tình yêu tôi muốn đề nghị học một chút về sư phạm cũng như thay đổi "các quy tắc" của "định dạng Q & A của chúng tôi". –

+1

Đồng ý. Nếu bạn không thích điều này bị đóng, hãy bỏ phiếu để mở lại. –

+2

Ước gì tôi có 3000 danh tiếng vì vậy tôi có thể bỏ phiếu để mở lại ... – FelixM

Trả lời

9

Tôi sử dụng Cobertura. Tuy nhiên, bất kỳ công cụ phủ sóng Java nào cũng chỉ hoạt động tốt. Điểm duy nhất là bạn sẽ kết thúc với một số lượng lớn các lớp được tạo tự động trong danh sách bảo hiểm của bạn. Điều này là bởi vì trong khi Scala biên dịch thành bytecode JVM rất tự nhiên, nó buộc phải tạo ra một số lượng lớn các lớp học không tự nhiên để phù hợp với các tính năng chức năng phổ biến như đánh giá lười biếng.

+0

Đây là vấn đề kinh điển của việc thiết kế một cái gì đó khác với mã nguồn: bạn làm ồn lên câu trả lời. Xem phần thảo luận về các vấn đề liên quan khi tệp lớp nhạc cụ thay vì tệp nguồn tại câu trả lời SO này: http://stackoverflow.com/a/15260092/120163 –

18

SCCT là một plugin trình biên dịch mà cụ các lớp học để thu thập dữ liệu bảo hiểm:

http://mtkopone.github.com/scct/

+0

afaik không có cách nào để móc SCCT vào Hudson? –

+2

SCCT hiện đang ở mức trung bình. – mmlac

8

Một vấn đề với ngôn ngữ không chính thống (như Scala) là công cụ rất khó tìm, bởi vì họ khó xây dựng.

Tài liệu kỹ thuật này Branch Coverage for Arbitrary Languages Made Easy (Tôi là tác giả) mô tả cách xây dựng các công cụ kiểm tra cho langauges theo cách có hệ thống để giúp giải quyết vấn đề này, sử dụng cơ sở hạ tầng công cụ chung.

Chúng tôi đã triển khai test coverage tools for Java, C#, COBOL, C, C++, PL/SQL, ... theo cách này, bao gồm thiết bị đo đạc, thu thập dữ liệu và hiển thị và báo cáo phạm vi kiểm tra. Sẽ rất dễ dàng khi thực hiện Scala như thế này.

Các giải pháp được đặt ra bởi các câu trả lời khác tạo ra thông tin khó hiểu từ việc triển khai Scala ("các lớp tự động được xử lý"). Những gì nhà phát triển muốn xem là dữ liệu về mức độ phù hợp của mã của họ. Cách tiếp cận chúng tôi sử dụng các công cụ mã nguồn, do đó, các kết quả được trình bày hoàn toàn và chỉ về mặt mã nguồn; ngay cả trình xem phủ sóng kiểm tra cũng hiển thị mã nguồn được bao phủ với thông tin về mức độ phù hợp.

2

Tôi sử dụng jacoco. Nó không yêu cầu biên dịch hay phụ thuộc thời gian chạy, các lớp công cụ trên bay với giai đoạn thiết bị đặc biệt.

Cũng được tích hợp với Sonar và được xuất bản trên Maven Central.

Dưới đây là ví dụ: https://github.com/Godin/sonar-experiments/tree/master/jacoco-examples/scala-example

Tôi muốn thêm báo cáo tốt hơn: chi tiết bảo hiểm chi nhánh makrup, trừ của tạo lớp/phương pháp, và để được thuận tiện như ScalaDoc (xem SCCT báo cáo chẳng hạn)

3

Tôi đã đặt cùng một plugin SBT được gọi là xsbt-coveralls-plugin sử dụng scct dưới mui xe, nhưng xuất bản kết quả đến http://coveralls.io.

Disclaimer:tôi đã chỉ mới xây dựng plugin này ngày hôm qua (10 tháng 3 2013) vì vậy đừng hy vọng nó sẽ trở nên hoàn hảo chưa, nhưng đừng gửi lỗi và yêu cầu tính năng để trang github

Tuy nhiên, nó là tốt nếu bạn muốn mã báo cáo bảo hiểm được hiển thị công khai. Hãy xem ví dụ về kết quả