2012-03-23 27 views
5

Tôi có một ứng dụng web được triển khai trên Tomcat. Trước khi tôi đi sâu vào chi tiết, hãy để tôi đánh vần các phiên bản.jacoco + tomcat = jacoco.exec, Báo cáo vùng phủ sóng bằng 0. Cứu giúp.

phiên bản: jdk 1.7, Tomcat - 7.0.19, jacoco -0.5.6

Tôi đã thêm jdk1.7 để Tomcat. Trong tập tin \ apache-tomcat-7.0.19 \ bin \ startup.bat tôi đã thêm vào.

SET JAVA_HOME=C:\ProgramFiles\Java\jdk1.7.0 

Ngoài ra tôi đã thêm tác nhân jacoco vào Tomcat. Trong apache-tomcat-7.0.19 \ bin \ catalina.bat Tôi đã thêm vào.

SET JACOCO=-javaagent:<my download folder>\jacoco-0.5.6.2012\lib\jacocoagent.jar=destfile=C:\jacoco.exec,append=true,includes=* 
set JAVA_OPTS=%JAVA_OPTS% %JACOCO% 

Bây giờ, khi tôi khởi động Tomcat và nhấn ứng dụng web của tôi, như dự kiến ​​có tệp C: \ jacoco.exec.

bây giờ tôi đã chuyển mã để cấu trúc thư mục sau jacoco.exec /bin/ /coveragereport

Bây giờ tôi đã sử dụng ReportGenerator lớp từ http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java. Tôi đã có một loạt các báo cáo ở định dạng HTML trong thư mục/coveragereport. Tuy nhiên, tất cả các mã được hiển thị là không được chạm vào. Mặc dù sau khi tôi đã bắn Tomcat tôi đã đi đến http://localhost:/và duyệt xung quanh. Tôi đã hy vọng sẽ nhận được một tỷ lệ phần trăm bảo hiểm được báo cáo.

Tôi thiếu điều gì đó rất cơ bản. Xin vui lòng giúp đỡ.

Trả lời

8

Tomcat sẽ ghi tệp Jacoco khi tắt máy.

5

Hoặc bạn có thể sử dụng ant dump task:

jacoco:dump address="server.example.com" reset="true" destfile="remote.exec"/> 

Nhưng cho rằng để làm việc, bạn phải xác định output mode tcpserver cho java agent.

-javaagent:[yourpath/]jacocoagent.jar=output=tcpserver,address=<host>,port=<port>,... 
+0

Tôi đang cố gắng sử dụng cách được đề xuất (tcpserver), tôi đang sử dụng JAcoco 0.6.2+. Tôi không thấy bất kỳ máy chủ nào bị ràng buộc với cổng mặc định 6300. Khi tôi chạy lệnh kết xuất, tôi nhận được "Không thể đổ dữ liệu vùng phủ sóng", với "Kết nối bị từ chối", vì không có gì chạy trên cổng đó. Nó là một lỗi hoặc tôi thiếu cái gì? –

+0

@MarcellodeSales Tôi cũng đang đối mặt với vấn đề này ... nơi tôi có thể bị nhầm lẫn? –

+0

@MarcellodeSales nó là một thời gian dài trước đây, nhưng nó là rất quan trọng để có output = tcpserver được xác định. và có thể đặt cổng của riêng bạn qua địa chỉ = , port = oers

1

6300 là cổng mặc định được cung cấp. Bạn có thể thay đổi cổng hoặc bạn có thể tìm các cổng miễn phí có thể được nghe bằng cách sử dụng netstat -an | grep "LISTEN"