2010-05-30 43 views
6

Tôi có một lớp học mà bắt đầu với:eclEmma - bảo hiểm mã đầy đủ trên tiêu đề lớp?

public class GeneralID implements WritableComparable<GeneralID>{ 
... 
} 

Và khác đó là:

public class LineValuesMapper<KI, VI, KO, VO> extends Mapper<LongWritable, Text, Text, IntWritable>{ 
... 
} 

Tất cả các phương pháp trong các lớp này được bảo hiểm. Nhưng không phải tiêu đề của họ. Tiêu đề của cả hai lớp được tô màu vàng với EclEmma.

Các hướng dẫn bảo hiểm cho các lớp này là:

Element Coverage Covered Instructions Total Instructions 
LineValuesMapper.java 97.3 % 145 149 
GeneralID.java 99.3 % 566 570 

Có bất cứ điều gì tôi có thể làm để trang trải đầy đủ các tiêu đề lớp học?

+0

EclEmma cũng sẽ cung cấp cho bạn số vùng phủ sóng trong các ô nhỏ bên dưới trình chỉnh sửa. Những người nói gì? Bạn có thể đăng các số (khối, đường, hướng dẫn, v.v.) cho lớp mẫu của bạn không? – jasonmp85

+0

Ngoài ra, cả hai lớp này đều triển khai hoặc mở rộng các kiểu tham số. Hành vi này có được trưng bày trong các lớp không sử dụng Generics trong định nghĩa của chúng không? – jasonmp85

+0

Điều này chỉ xảy ra trong hai lớp này để mở rộng/triển khai các kiểu tham số. Tôi có các lớp khác trong tình huống tương tự được bảo hiểm đầy đủ. Sự khác biệt là các lớp khác được tham số hóa các loại được xác định bởi tôi. Các loại này được định nghĩa trong API Hadoop. Tôi đã thêm các hướng dẫn được đề cập trong câu hỏi của tôi ở trên. –

Trả lời

3

Đối với các lớp mở rộng siêu lớp chung hoặc triển khai giao diện chung, trình biên dịch có thể thêm phương pháp cầu tổng hợp. Xem the results of looking at the bytecode của một trường hợp tương tự.

Có thể trong các lớp học của bạn, các phương thức cầu này không được gọi. OTOH, tôi chỉ đọc rằng Emma có tùy chọn bỏ qua các phương pháp tổng hợp hoặc cầu được bật theo mặc định.

+0

Tôi đã được bộ não của tôi cho câu trả lời này trước đó. Nắm bắt tốt. Emma có thể có tùy chọn này, nhưng tôi không nhớ liệu EclEmma có sử dụng nó khi nó điều khiển Emma từ bên trong Eclipse hay không. – jasonmp85

+2

Cùng với những dòng này, Enums dường như cũng có một số vấn đề với Emma (http://padcom13.blogspot.com/2009/12/code-coverage-and-enum-types.html). Có lẽ Fork có thể tìm ra cách giải quyết tương tự? – jasonmp85

+0

Tôi nên tắt tính năng này ở đâu? Một điều mà tôi đã nhận thấy cả hai lớp tôi đã đề cập ở trên sử dụng một enum mà tôi đã định nghĩa ở nơi khác. Tôi đang cố gắng kiểm tra enum, nhưng không may mắn. –

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