2010-05-30 1 views
6

У меня есть класс, который начинается с:eclEmma - полное покрытие кода на заголовке класса?

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

И еще что:

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

Все методы в этих классах покрыты. Но не их заголовок. Заголовок обоих классов окрашивается в желтый цвет с помощью EclEmma.

Покрытые инструкции для этих классов:

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

Что я могу сделать, чтобы полностью покрыть заголовок класса?

+0

EclEmma также должна предоставлять вам номера покрытия в маленьких панелях под редактором. Что говорят люди? Можете ли вы разместить номера (блоки, строки, инструкции и т. Д.) Для своего класса образцов? – jasonmp85

+0

Кроме того, оба этих класса реализуют или расширяют параметризованные типы. Это поведение проявляется в классах, которые не используют дженерики в своих определениях? – jasonmp85

+0

Это происходит только в этих двух классах, которые расширяют/реализуют параметризованные типы. У меня есть другие классы в той же ситуации, которые полностью покрыты. Разница в том, что другие классы, параметризованные типы, определены мной. Эти типы определены в API Hadoop. Я добавил приведенные инструкции по моему вопросу выше. –

ответ

3

Для классов, которые расширяют общие суперклассы или реализуют общие интерфейсы, компилятор может добавить методы синтетического мостика . См. the results of looking at the bytecode аналогичного случая.

Возможно, в ваших классах эти методы моста не называются. OTOH, я просто прочитал, что у Эммы есть возможность игнорировать синтетические или мостовые методы, которые по умолчанию включены.

+0

Раньше я пытался разгадать мой мозг. Хороший улов. Эмма может иметь этот вариант, но я не помню, использует ли EclEmma его, когда он управляет Эммой из Eclipse. – jasonmp85

+2

Наряду с этими линиями, у Enums также есть некоторые проблемы с Emma (http://padcom13.blogspot.com/2009/12/code-coverage-and-enum-types.html). Может, Вилка может найти подобное обходное решение? – jasonmp85

+0

Где его отключить? Одна вещь, которую я заметил, оба класса, упомянутые выше, используют перечисление, которое я определил в другом месте. Я пытаюсь проверить перечисление, но не повезло. –

 Смежные вопросы

  • Нет связанных вопросов^_^