2015-09-22 16 views
36

Tôi đã bật thống kê mức độ phù hợp mã trong Xcode 7.0 và Mục tiêu C (like this) và mã hoạt động tốt.Không bao gồm mã từ số liệu thống kê vùng phủ sóng trong Xcode 7

Có thể đánh dấu một số dòng nguồn để chúng bị bỏ qua bởi báo cáo bảo hiểm không? Nếu tôi đã sử dụng lcov thì tôi có thể sử dụng các dấu hiệu LCOV_EXCL_STARTLCOV_EXCL_END (như trong How to tell lcov to ignore lines in the source files) nhưng Xcode không nhận ra chúng.

Xcode có cơ chế thay thế để thực hiện việc này không?

+1

Khi tôi còn trẻ và chưa từng trải qua, tôi cũng đã làm điều đó, sau đó tôi nhận ra rằng vô ích khi cố gắng đạt được mức độ phù hợp 100% bằng cách bỏ qua một số phần mã. Đừng cố gắng phát báo cáo của bạn bằng cách bỏ qua mã. – Sulthan

+0

Cách duy nhất tôi có thể thấy là sử dụng một hành động sau cho Kiểm tra khi bạn tìm thấy tệp 'Coverage.profdata' trong thư mục xây dựng và cập nhật nó. Có thể xuất nó sang gcov bằng công cụ llvm-cov. – Sulthan

+6

@Sulthan Tôi không còn trẻ và cũng không có kinh nghiệm. Tôi muốn loại trừ các dòng như xác nhận rằng một dòng cụ thể không thể truy cập được. Có rất nhiều giá trị trong việc biết nhanh rằng mọi dòng có thể truy cập trong một hàm đều được bảo vệ và không phải kiểm tra xem đường màu đỏ tươi trong Xcode có thực sự là một khẳng định hay không. –

Trả lời

0

Xcode7 và sau đó (based on some forum posts), hệ thống bảo hiểm sử dụng cơ chế báo cáo và tạo báo cáo của LLVM, định dạng chi tiết tại http://llvm.org/docs/CoverageMappingFormat.html. Kể từ Xcode 9, định dạng này không hỗ trợ bất kỳ phương tiện loại trừ các dòng (hoặc các cấu trúc khác).

Ánh xạ kết quả được xuất sang định dạng tiêu hao (txt hoặc html) theo llvm-cov, cũng không thực sự có nhiều cơ chế loại trừ. llvm-cov hiện có một số thông báo đơn giản để chỉ báo cáo về phạm vi phủ sóng "lớn hơn" hoặc "ít hơn" cho cả hai dòng và khu vực, nhưng tôi nghi ngờ đó không hoàn toàn là những gì bạn đang theo dõi dựa trên câu hỏi trên.

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