2008-10-23 26 views

Trả lời

21

Vâng, Devel::Cover là con đường để đi.

Nếu bạn phát triển một mô-đun, và sử dụng Module::Build để quản lý quá trình cài đặt, bạn thậm chí có một mục tiêu testcover:

perl Build.PL 
./Build testcover 

Đó chạy bộ kiểm tra toàn bộ, và làm cho một báo cáo bảo hiểm kết hợp trong HTML tốt đẹp, nơi bạn có thể duyệt qua các mô-đun của bạn và xem mức độ phù hợp của chúng.

28

Như thường lệ, CPAN là bạn của bạn: Hãy nhìn vào Devel::Cover

+0

Vui lòng không liên kết với phiên bản cụ thể của mô-đun. Hãy thử http://search.cpan.org/perldoc?Devel::Cover thay thế. – cjm

+0

Vẫn còn tốt hơn, hãy sử dụng http://search.cpan.org/dist/Devel-Cover/ –

+0

Đề xuất tuyệt vời! Đã sửa. –

11

Như đã lưu ý, Devel :: Cover là bạn của bạn, nhưng bạn cũng sẽ muốn google cho nó. Đó là tài liệu hơi thưa thớt và nếu bạn thay đổi hoàn toàn môi trường của mình, bạn sẽ cần cài đặt lại nó vì nó xây dựng Devel :: Cover :: Inc với một loạt thông tin được lấy từ môi trường của bạn tại thời điểm bạn cài đặt nó. Điều này đã gây ra nhiều vấn đề cho chúng tôi khi chúng tôi có môi trường CPAN được chia sẻ và nếu một nhà phát triển cài đặt Devel :: Cover và một nhà phát triển khác cố gắng chạy nó, các kết quả lạ (và không chính xác) là phổ biến.

Nếu bạn sử dụng mô-đun này, hãy xem Devel::CoverX::Covered. Mô-đun này sẽ nắm bắt nhiều thông tin mà Devel :: Cover ném đi. Nó rất tiện dụng.

5

Moritz thảo luận về cách mô-đun được tạo bằng Mô-đun :: Xây dựng có thể sử dụng Devel :: Dễ dàng bao gồm.

Đối với các mô-đun sử dụng ExtUtils :: MakeMaker, một mô-đun mở rộng tồn tại để gọi cùng một chức năng. Thêm mã sau đây trước khi gọi hàm WriteMakefile():

eval "use ExtUtils::MakeMaker::Coverage"; 
if([email protected]) { 
    print "Adding testcover target\n"; 
} 

... sẽ cho phép một lệnh chạy lệnh 'make testcover' và Devel :: Cover thực hiện phép thuật.

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