Why does Clover use source code instrumentation?
Q: Why does Clover use source code instrumentation?Source code instrumentation is the most powerful, flexible and accurate way to provide code coverage analysis.The following table compares different methods of obtaining code coverage and their relative benefits:
Possible feature | JVMDI/PI | Bytecode instrumentation | Source code instrumentation |
---|---|---|---|
Gathers method coverage | はい | はい | はい |
Gathers statement coverage | line only | indirectly | はい |
Gathers branch coverage | indirectly | indirectly | はい |
Can work without source | はい | はい | いいえ |
Requires separate build | いいえ | いいえ | はい |
Requires specialized runtime | はい | はい | いいえ |
Gathers source metrics | いいえ | いいえ | はい |
View coverage data inline with source | not accurate | not accurate | はい |
Source level directives to control coverage gathering | いいえ | いいえ | はい |
Control which entities are reported on | limited | limited | はい |
Compilation time | no impact | 変数 | 変数 |
Runtime performace | high impact | 変数 | 変数 |
Container friendly | いいえ | いいえ | はい |