eclEmma - code coverage completo su intestazione di classe?
-
05-10-2019 - |
Domanda
Ho una classe che inizia con:
public class GeneralID implements WritableComparable<GeneralID>{
...
}
E un altro che è:
public class LineValuesMapper<KI, VI, KO, VO> extends Mapper<LongWritable, Text, Text, IntWritable>{
...
}
Tutti i metodi di queste classi sono coperti. Ma non la loro intestazione. L'intestazione di entrambe le classi viene dipinto come giallo con EclEmma.
Le istruzioni coperti per queste classi sono:
Element Coverage Covered Instructions Total Instructions
LineValuesMapper.java 97.3 % 145 149
GeneralID.java 99.3 % 566 570
C'è qualcosa che posso fare per coprire integralmente l'intestazione della classe?
Soluzione
Per le classi che estendono superclassi generici o implementano interfacce generiche, il compilatore può aggiungere metodi ponti sintetici . Vedere i risultati di guardare il bytecode di un caso simile.
Forse nelle classi, questi metodi non sono chiamati a ponte. OTOH, ho appena letto che Emma ha un'opzione per ignorare metodi sintetici o ponte che è abilitato per impostazione predefinita.