BIRD AT-800 User manual

1. Clover Documentation Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 About Clover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 About Code Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 About Distributed Per-Test Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.3 About Test Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.4 About Clover Editions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Supported Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Clover-for-Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 Clover-for-Eclipse Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1.1 Changes in 2.0.0.b2_1 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1.2 Changes in 2.0.0 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1.3 Changes in 2.0.1 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1.4 Changes in 2.0.2 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1.5 Changes in 2.0.3 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1.6 Changes in 2.1.0 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1.7 Changes in 2.2.1 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1.8 Changes in 2.3.1 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1.9 Changes in 2.3.2 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1.10 Changes in 2.4.0 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.1.11 Changes in 2.4.2 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3.1.12 Changes in 2.4.3 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3.1.13 Changes in 2.5.0 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.1.14 Changes in 2.5.1 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.1.15 Changes in 2.6.0 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.1.16 Changes in 2.6.2 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3.1.17 Changes in 2.6.3 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3.1.18 Changes in 3.0.0 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.1.19 Changes in 3.1.0 for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.2 Clover-for-Eclipse Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.3 Clover-for-Eclipse Installation Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.3.1 Installing Clover-for-Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.3.3.2 Installing Older Versions of Clover-for-Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.4 Clover-for-Eclipse Upgrade Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3.5 Clover-for-Eclipse User's Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3.5.1 Generating Reports in Clover-for-Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.3.5.2 Launching an Ant build from Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
1.3.5.3 Performance Tuning in Clover for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.3.5.4 Test Optimization for Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.4 Clover-for-IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.4.1 Clover-for-IDEA Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
1.4.1.1 Changes in 2.3.1-beta1 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

1.4.1.2 Changes in 2.3.2-beta2 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.4.1.3 Changes in 2.3.2-beta3 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.4.1.4 Changes in 2.3.2-beta4 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.4.1.5 Changes in 2.3.2-beta5 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.4.1.6 Changes in 2.4.0 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.4.1.7 Changes in 2.4.1 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.4.1.8 Changes in 2.4.2 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.4.1.9 Changes in 2.4.3 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.4.1.10 Changes in 2.5.0 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
1.4.1.11 Changes in 2.5.1 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.4.1.12 Changes in 2.6.0 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.4.1.13 Changes in 2.6.3 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.4.1.14 Changes in 2.6.3.2 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
1.4.1.15 Changes in 3.0.0 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
1.4.1.16 Changes in 3.1.0 for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
1.4.2 Clover-for-IDEA FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.4.3 Clover-for-IDEA Installation Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.4.4 Clover-for-IDEA Upgrade Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1.4.5 Clover-for-IDEA User's Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1.4.5.1 Clover-for-IDEA Auto-Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.4.5.2 Performance Tuning in Clover for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.4.5.3 Test Optimization for IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.5 Clover-for-Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.5.1 Clover-for-Ant Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.5.1.1 Changes in 2.0.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1.5.1.2 Changes in 2.0.1 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1.5.1.3 Changes in 2.0.2 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1.5.1.4 Changes in 2.0.3 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.5.1.5 Changes in 2.0a1 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.5.1.6 Changes in 2.0a2 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.5.1.7 Changes in 2.0a3 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.5.1.8 Changes in 2.0a4 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.5.1.9 Changes in 2.0a5 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.5.1.10 Changes in 2.0b1 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
1.5.1.11 Changes in 2.0b2 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
1.5.1.12 Changes in 2.1.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
1.5.1.13 Changes in 2.2.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
1.5.1.14 Changes in 2.2.1 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
1.5.1.15 Changes in 2.3.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
1.5.1.16 Changes in 2.3.1 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
1.5.1.17 Changes in 2.3.2 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
1.5.1.18 Changes in 2.4.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
1.5.1.19 Changes in 2.4.2 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
1.5.1.20 Changes in 2.4.3 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
1.5.1.21 Changes in 2.5.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
1.5.1.22 Changes in 2.5.1 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
1.5.1.23 Changes in 2.6.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
1.5.1.24 Changes in 2.6.2 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
1.5.1.25 Changes in 2.6.3 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
1.5.1.26 Changes in 3.0.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
1.5.1.27 Changes in 3.1.0 for Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
1.5.2 Clover-for-Ant Installation Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
1.5.2.1 Installation options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
1.5.2.1.1 Adding to Ant's Classpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
1.5.2.1.2 Installing from build.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
1.5.2.2 System requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
1.5.3 Clover-for-Ant Upgrade Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
1.5.4 Clover-for-Ant User's Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
1.5.4.1 1. QuickStart Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
1.5.4.1.1 Clover for Ant Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
1.5.4.1.2 Clover-for-Ant Two Line Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
1.5.4.1.3 Test Optimization Quick Start Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
1.5.4.2 2. Using Clover Interactively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
1.5.4.3 3. Using Clover in Automated Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
1.5.4.4 4. Understanding Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
1.5.4.4.1 'Current' Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
1.5.4.4.2 'Historical' Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
1.5.4.4.3 About 'Coverage Clouds' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
1.5.4.4.4 Coverage Legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
1.5.4.4.5 Using the Clover Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
1.5.4.5 5. Configuring Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
1.5.4.5.1 Extracting Coverage Data programmatically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
1.5.4.5.2 Sharing Report Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
1.5.4.5.3 Unit Test Results and Per-Test Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
1.5.4.5.4 Using Coverage Contexts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
1.5.4.5.5 Using Spans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
1.5.4.6 6. Ant Task Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
1.5.4.6.1 clover-check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
1.5.4.6.2 clover-clean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
1.5.4.6.3 clover-env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

1.5.4.6.4 clover-historypoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
1.5.4.6.5 clover-html-report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
1.5.4.6.6 clover-instr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
1.5.4.6.7 clover-log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
1.5.4.6.8 clover-merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
1.5.4.6.9 clover-pdf-report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
1.5.4.6.10 clover-report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
1.5.4.6.11 clover-setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
1.5.4.6.12 clover-snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
1.5.4.7 7. Ant Type Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
1.5.4.7.1 clover-columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
1.5.4.7.2 clover-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
1.5.4.7.3 clover-optimized-selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
1.5.4.7.4 clover-optimized-testset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
1.5.4.8 8. Controlling Clover at Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
1.5.4.8.1 Clover Performance Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
1.5.4.8.2 Managing the Coverage Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
1.5.4.8.3 Using a Flush Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
1.5.4.8.4 Using Source Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
1.5.4.8.5 Working with Distributed Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
1.5.4.8.6 Working with Restricted Security Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
1.5.4.9 9. Clover Target Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
1.6 Clover-for-Maven 2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
1.6.1 About Clover-for-Maven 2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
1.6.2 Clover for Maven 2 and 3 Developer Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
1.6.3 Clover-for-Maven 2 and 3 Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
1.6.3.1 Changes in 2.0.2 for Maven 2 (plugin version 3.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
1.6.3.2 Changes in 2.1 for Maven 2 (plugin version 3.7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
1.6.3.3 Changes in 2.02 for Maven 2 (plugin version 3.6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
1.6.3.4 Changes in 2.3.0 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
1.6.3.5 Changes in 2.3.2 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
1.6.3.6 Changes in 2.4.0 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
1.6.3.7 Changes in 2.4.2 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
1.6.3.8 Changes in 2.4.3 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
1.6.3.9 Changes in 2.5.0 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
1.6.3.10 Changes in 2.6.0 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
1.6.3.11 Changes in 3.0.0 for Maven 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
1.6.3.12 Changes in 3.1.0 for Maven 2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
1.6.4 Clover-for-Maven 2 and 3 FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
1.6.5 Clover-for-Maven 2 and 3 Installation Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
1.6.6 Clover-for-Maven 2 and 3 Quick Start Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
1.6.7 Clover-for-Maven 2 and 3 Upgrade Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
1.6.7.1 Upgrade Notes for Clover-for-Maven 2 and 3 Groovy Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
1.6.7.2 Upgrade Notes for Clover-for-Maven 2 version 2.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
1.6.8 Clover-for-Maven 2 and 3 User's Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
1.6.8.1 Clover for Maven 2 and 3 Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
1.6.8.2 Using Distributed Per-test Coverage with Maven 2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
1.6.8.3 Using Test Optimization with Clover-for-Maven 2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
1.7 Clover-for-Grails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
1.7.1 Clover-for-Grails Installation and Upgrade Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
1.7.2 Clover-for-Grails Quick Start Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
1.8 Clover Command Line Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
1.8.1 CloverInstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
1.8.2 CloverMerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
1.8.3 ConsoleReporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
1.8.4 HtmlReporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
1.8.5 PDFReporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
1.8.6 XmlReporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
1.9 Clover-for-Maven 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
1.9.1 Clover-for-Maven 1 Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
1.9.2 Clover-for-Maven 1 FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
1.9.3 Clover-for-Maven 1 Installation Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
1.9.4 Clover-for-Maven 1 Upgrade Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
1.9.5 Clover-for-Maven 1 User's Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
1.9.5.1 Maven Clover Plugin Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
1.9.5.2 Registering a Clover report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
1.9.5.3 Using Test Optimization with Clover-for-Maven 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
1.10 Clover Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
1.10.1 Clover 3.1 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
1.10.2 Clover 3.0 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
1.10.3 Clover 2.6 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
1.10.4 Clover 2.5 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
1.10.5 Clover 2.4 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
1.10.6 Clover 2.3 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
1.10.7 Clover 2.2 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
1.10.8 Clover 2.1 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
1.10.9 Clover 2.0 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
1.10.10 Clover Release Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
1.11 Clover Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
1.11.1 How to configure your clover.license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

1.11.2 Tutorial - Using Clover with Ant and JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
1.11.2.1 Part 1 - Measuring Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
1.11.2.2 Part 2 - Historical Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
1.11.2.3 Part 3 - Automating Coverage Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
1.11.2.4 Part 4 - Test Optimization Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
1.12 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
1.12.1 branch coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
1.12.2 code coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
1.12.3 coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.4 coverage clouds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.5 decision coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.6 history point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.7 interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.8 method coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.9 span . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.10 statement coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.12.11 test coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
1.13 Clover FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
1.13.1 Concepts & Usage FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
1.13.1.1 Can I create a Clover Report on Server A if I have the clover.db which I generated on Server B? . . . . . . . . . . . 254
1.13.1.2 Does Clover depend on JUnit? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
1.13.1.3 Does Clover integrate with Maven? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
1.13.1.4 Does Clover support the new language features in JDK1.5? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.13.1.5 Does Clover work with JUnit4 and TestNG? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.13.1.6 How are the Clover coverage percentages calculated? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.13.1.7 How do I compare the code coverage between two releases of my code? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.13.1.8 How do I get started with Clover? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.13.1.9 How do I use Clover with NetBeans? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.13.1.10 What are the limitations of Code Coverage? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
1.13.1.11 What does the name "Clover" mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.1.12 What is Code Coverage Analysis? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
1.13.1.13 What is the coverage.db file and why am I seeing files like coverage.dbxxxxxxxxx_xxxxx_xxxx? . . . . . . . . . . 257
1.13.1.14 What third-party libraries does Clover utilise? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
1.13.1.15 Where did Clover originally come from? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
1.13.1.16 Why does Clover instrument classes I have excluded using the 'exclude' element of the 'clover-setup' task? . 257
1.13.1.17 Why does Clover use Source Code Instrumentation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
1.13.1.18 Will Clover integrate with my IDE? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
1.13.2 Eclipse Plugin FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
1.13.2.1 I only need instrumented classes for unit testing and I don't want to risk publishing them to my production
environment. How can I do this with Clover? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
1.13.2.2 Is Clover 2 supported on IBM's RAD 7? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
1.13.2.3 Why can I only see coverage data for the last test case I executed? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
1.13.3 Maven 2 and 3 Plugin FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
1.13.3.1 Deploying Instrumented Jars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
1.13.3.2 How to keep Clover reports between builds? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
1.13.3.3 Is there an alternative to using the Maven Central repository? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
1.13.3.4 Preparing multi-module projects for remote deployment with Clover-for-Maven 2 . . . . . . . . . . . . . . . . . . . . . . . 261
1.13.3.5 Troubleshooting License problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
1.13.3.6 Using Clover with the GWT-maven plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
1.13.3.7 Using Clover with the maven-bundle-plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
1.13.4 Support Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
1.13.4.1 Bug Fixing Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
1.13.4.2 How to Report a Security Issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
1.13.4.3 New Features Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
1.13.4.4 Security Advisory Publishing Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
1.13.4.5 Security Update Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
1.13.4.6 Severity Levels for Security Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
1.13.4.7 Update Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
1.13.5 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
1.13.5.1 Compiling my instrumented sources fails with a 'code too large' error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
1.13.5.2 For some statements in my code Clover reports "No Coverage information gathered for this expression". What
does that mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5.3 Hit count for multi-threaded test is incorrect in Clover's report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
1.13.5.4 I'm trying to get a coverage report mailed, but I keep getting "mail Failed to send email". How do I fix this? . . . . . .
1.13.5.5 I'm using the maven-clover-plugin version 2.4 with a license downloaded from Atlassian and get the message
'Invalid or missing License' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
1.13.5.6 Tools for Troubleshooting Clover-for-Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
1.13.5.7 Two questions to ask yourself first when troubleshooting Clover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
1.13.5.8 When generating some report types on my UNIX server with no XServer, I get an exception "Can't connect to X11
server" or similar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5.9 When using Clover, why do I get a java.lang.NoClassDefFoundError when I run my code? . . . . . . . . . . . . . . . 269
1.13.5.10 When using Clover from Ant, why do I get "Compiler Adapter'org.apache.tools.ant.taskdefs.CloverCompilerAdapter' can't be found." or similar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.5.11 Why does the 'Test Results' summary page report show that I have unique coverage, when the source page
shows no unique coverage? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
1.13.5.12 Why do I get 0% coverage when I run my tests and then a reporter from the same instance of Ant? . . . . . . . 269
1.13.5.13 Why do I get a 'java.lang.OutOfMemoryError - PermGen space' error? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
1.13.5.14 Why do I get an java.lang.OutOfMemoryError when compiling with Clover turned on? . . . . . . . . . . . . . . . . . . 270
1.14 Clover Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
1.15 Clover Development Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

1.16 Contributing to the Clover Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
2. Clover 3.0 Early Access Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
3. .bookmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
4. TreeNavigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
5. TreeNavigationVersions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Clover 3.1 Documentation
6
Clover Documentation Home
Clover 3.1.x
Learn About Clover
Find out everything you'll need to know about Clover's capabilities in our detailed , our detailedcode coverage analysis About page Feature
, hands-on and . See also the overview to get cracking with this advanced Clover feature and theTour Tutorials Video Test Optimization
page to see a summary of the latest release.What's New
Clover for Eclipse
Clover for Eclipse brings Atlassian's award-winning code coverage analysis to the popular Eclipse IDE. See the to getInstallation Guide
started, while the is for digging into Clover's advanced reporting. Evaluators, see the information andUser's Guide Latest Version Download
pages.
Clover for IDEA
Clover for IDEA brings Atlassian's award-winning code coverage analysis to the popular Intellij IDEA IDE. See the to getInstallation Guide
started, while the is for digging into Clover's advanced reporting. Evaluators, see the information andUser's Guide Latest Version Download
pages.
Clover for Ant
Clover for Ant brings Atlassian's award-winning code coverage analysis to the popular Apache Ant build automation tool. See the Installation
to get started, while the is for digging into Clover's advanced reporting. Evaluators, see the informationGuide User's Guide Latest Version
and pages. See also the to get cracking with this advanced Clover feature.Download Test Optimization Quick Start Guide
Clover for Maven 2
Clover for Maven 2 brings Atlassian's award-winning code coverage analysis to the popular Maven 2 build automation tool. See the
to get started, while the is for digging into Clover's advanced reporting. Evaluators, see theInstallation Guide User's Guide Latest Version
information and . See also the to get cracking with this advanced Clover feature.Download Guide Test Optimization Quick Start Guide
Clover for Grails
Clover-for-Grails brings Atlassian's award-winning code coverage analysis to the Grails application development framework. See the
to get started, while the helps you get Clover's code coverage capabilities working on your GrailsInstallation Guide Quick Start Guide
projects. Evaluators, see the information and .Latest Version Download Guide
Clover Command Line Tools
Clover Command Line Tools allow usage of Atlassian's award-winning code coverage analysis at the most basic level. See the Installation
to get started, while the is for digging into Clover's advanced reporting.Guide User's Guide

Clover 3.1 Documentation
7
Clover for Maven 1
Clover for Maven 1 brings Atlassian's award-winning code coverage analysis to the popular Maven 1 build automation tool. See the
to get started, while the is for digging into Clover's advanced reporting. Evaluators, see theInstallation Guide User's Guide Latest Version
information and pages.Download
About Clover
Getting Started
If you are new to Clover and want to get it going quickly, try the following:
Ant Quick Start Guide
Maven 2 and 3 Quick Start Guide.
The section provides a brief background on the theory and motivation behind Code Coverage. TheIntroduction to Code Coverage Clover
provides a good alternative introduction to Clover.Tutorial
If you are upgrading from Clover 1.x, read about what's new in , the , and theClover 2 upgrading guide Best Practices for Clover Integration
.
If you are browsing and interested in seeing see andhow Clover can be used on your project, Using Clover Interactively Using Clover in
.Automated Builds
Clover provides deep integration through plugins for both Eclipse & IntelliJ IDEA, see the andClover-for-Eclipse Clover-for-IDEA
sections for installation instructions.
For help with Ant, see the online Ant manual at . Also recommended reading is Eric Burke'shttp://ant.apache.org/manual/index.html Top 15
.Ant Best Practices
For Clover troubleshooting information, see the .Online Forums
System Requirements
See the .Clover-for-Ant Installation Guide
What's New in Clover 3?
See the .Clover Release Notes
Acknowledgements
Clover makes use of the following excellent third-party libraries:
Antlr 2.7.1 A public domain parser generator.
cajo A lightweight library for multi-machine communication.
iText 0.96 A library for generating PDF documents.
Apache Ant The Ant build system.
Apache Velocity 1.2 Templating engine used for HTML report generation.
jfreechart An open source library for generating charts.
overLIB A JavaScript library for popups and tooltips.
TheJIT An open source toolkit for creating interactive data visualisations.
Groovy An agile and dynamic language for the Java Virtual Machine.
Grails An advanced, open source web application framework based on .Groovy
To prevent library version mismatches, all of these libraries have been obfuscated and/or repackaged and included in the
Clover jar. We do this to prevent pain for users who may use different versions of these libraries in their projects.

Clover 3.1 Documentation
8
About Code Coverage
What is Code Coverage?
Code coverage is the percentage of code which is covered by automated tests. simply determines whichCode coverage measurement
statements in a body of code have been executed through a test run, and which statements have not. In general, a code coverage system
collects information about the running program and then combines that with source information to generate a report on the test suite's code
coverage.
Code coverage is part of a feedback loop in the development process. As tests are developed, code coverage highlights aspects of the code
which may not be adequately tested and which require additional testing. This loop will continue until coverage meets some specified target.
Why Measure Code Coverage?
It is well understood that unit testing improves the quality and predictability of your software releases. Do you know, however, how well your
unit tests actually test your code? How many tests are enough? Do you need more tests? These are the questions code coverage
measurement seeks to answer.
Coverage measurement also helps to avoid test entropy. As your code goes through multiple release cycles, there can be a tendency for unit
tests to atrophy. As new code is added, it may not meet the same testing standards you put in place when the project was first released.
Measuring code coverage can keep your testing up to the standards you require. You can be confident that when you go into production
there will be minimal problems because you know the code not only passes its tests but that it is well tested.
In summary, we measure code coverage for the following reasons:
To know how well our tests actually test our code
To know whether we have enough testing in place
To maintain the test quality over the lifecycle of a project
Code coverage is not a panacea. Coverage generally follows an 80-20 rule. Increasing coverage values becomes difficult, with new tests
delivering less and less incrementally. If you follow defensive programming principles, where failure conditions are often checked at many
levels in your software, some code can be very difficult to reach with practical levels of testing. Coverage measurement is not a replacement
for good code review and good programming practices.
In general you should adopt a sensible coverage target and aim for even coverage across all of the modules that make up your code. Relying
on a single overall coverage figure can hide large gaps in coverage.
How Code Coverage Works
There are many approaches to code coverage measurement. Broadly there are three approaches, which may be used in combination:
Source codeinstrumentation This approach adds instrumentation statements to the source code and compiles the code with the normal
compile tool chain to produce an instrumented assembly.
Intermediate code
instrumentation Here the compiled class files are instrumented by adding new bytecodes, and a new instrumented class is
generated.
Runtime information
collection This approach collects information from the runtime environment as the code executes to determine coverage
information
Clover uses source code instrumentation, because although it requires developers to perform an instrumented build, source code
instrumentation produces the most accurate coverage measurement for the least runtime performance overhead.
Be aware that while Clover is capable of instrumenting both Java and Groovy source code, the instrumentation stage occurs prior to
compilation with Java and during compilation with Groovy.
As the code under test executes, code coverage systems collect information about which statements have been executed. This information is
then used as the basis of reports. In addition to these basic mechanisms, coverage approaches vary on what forms of coverage information
they collect. There are many forms of coverage beyond basic statement coverage including conditional coverage, method entry and path
coverage.
Code Coverage with Clover
Clover is designed to measure code coverage in a way that fits seamlessly with your current development environment and practices,
whatever they may be. Clover's IDE Plugins provide developers with a way to quickly measure code coverage without having to leave the
IDE. Clover's Ant and Maven integrations allow coverage measurement to be performed in Automated Build and Continuous Integration
systems, and reports generated to be shared by the team.
Types of Coverage measured
Clover measures three basic types of coverage analysis:
Statement Statement coverage measures whether each statement is executed.

Clover 3.1 Documentation
9
Branch Branch coverage (sometimes called Decision Coverage) measures which possible branches in flow control structures are
followed. Clover does this by recording if the boolean expression in the control structure evaluated to both true and false
during execution.
In Groovy code, Clover also treats Elvis expressions (a :? b), safe method calls (a?.b()), safe property calls (a?.b) and safe
attribute calls (a?.@b) as branches.
Method Method coverage measures if a method was entered at all during execution.
Clover uses these measurements to produce a Total Coverage Percentage for each class, file, package and for the project as a whole. The
Total Coverage Percentage allows entities to be ranked in reports. The Total Coverage Percentage (TPC) is calculated as follows:
TPC = (BT + BF + SC + MC)/(2*B + S + M)
where
BT - branches that evaluated to "true" at least once
BF - branches that evaluated to "false" at least once
SC - statements covered
MC - methods entered
B - total number of branches
S - total number of statements
M - total number of methods
About Distributed Per-Test Coverage
With the Distributed Per-Test Coverage feature, Clover has the ability to record per-test coverage from tests that are running in separate test
JVMs, which may be co-sited or distributed around a network. This allows you to roll together results from unit and functional tests, from
JVMs running different test frameworks, possibly in remote locations, yet resulting in a single unified view of your project's per-test code
coverage.
Measuring per-test coverage allows you to run Clover's new on your functional tests. A battery of functional tests (beingTest Optimization
generally more time-consuming than unit tests) strongly benefits from the ability to run only the tests on code which has changed.
RELATED LINKS
Using Distributed Per-test Coverage with Maven 2 and 3
Using Distributed Per-test Coverage with Clover-for-Ant
About Test Optimization
This page explains Clover's Test Optimization feature and gives a brief explanation of how it works. See the Test Optimization Quick Start
for practical instructions.Guide
On this page:
What is Test Optimization?
How Test Optimization Works
Supported Test Environments for Test Optimization
Ant
Maven 2 & 3
Eclipse
IDEA
Related Links
What is Test Optimization?
Test optimization will make a build potentially complete a lot faster than a full build and test run. It should do this without substantially
compromising the quality of the feedback it gives; in other words a quicker pass or fail result, but a reasonably accurate pass or fail.
There are two ways of ensuring a build completes quickly:
1. Run only the tests required to confirm the validity of the changes that triggered the build.
2. Run all the tests but in an optimal order: any failed tests from the previous build, all tests covering modified code, then in ascending order
by test invocation time.
Since Clover records which tests covered which lines of code, it can tell the build to only run tests that cover code modified since the last
build.
How Test Optimization Works

Clover 3.1 Documentation
10
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
The following is a general outline of what is required to enable Clover to optimize the test and build process.
A full clean build is performed. Any existing Clover databases are removed.
Clover performs instrumentation on all Java source files. The Clover registry is created.
javac compiles the instrumented sources
All unit tests are run. Coverage data is stored next to the Clover registry.
A Clover snapshot is saved - this is essentially a mapping of application source files to the set of tests which hit each file.
Zero or more Java source files are modified, added or removed
Clover re-instruments either only the modified source files or all source files (depending on how Clover is invoked). The Clover
registry is updated, and any files modified or added since the last snapshot are marked as such.
Clover uses this information and the snapshot from the previous test run to determine which tests need rerunning.
The test runner is invoked. Only tests obtained in #9 and any tests unknown to Clover (perhaps excluded from instrumentation) are
run. Tests are ordered to encourage early failures.
A snapshot is saved.
Go to step 7 unless a maximum number of optimised builds has reached, has changed between builds or some otherclover.jar
build-specific condition signifies a full rebuild is required (e.g. configuration file changes) in which case .go to step 1
Supported Test Environments for Test Optimization
The following environments are supported for Test Optimization.
Your unit tests must be completely standalone and have no inter-test dependencies.
Clover's Test Optimization features currently do not support Groovy.
Ant
Ant version 1.6.5+ (1.7.1 recommended).
Junit - using the <batchset/> element nested in the Ant <junit/> task to select tests to be run.
Junit TestSuites are currently not supported.
TestNG is unsupported by Test Optimization for Clover for Ant.
If your tests run in a separate JVM to your application, you will need to .enable distributed coverage
Maven 2 & 3
Maven version 2.0.8+ (2.1.0 recommended) or 3.0.0
maven-surefire-plugin.
JUnit TestSuites are currently not supported.
TestNG test suites are currently not supported. ( Will not work in Maven 2.0.9)NB
Parallel test execution is unsupported.
If your tests run in a separate JVM to your application (e.g. in a forked webserver), you will need to .enable distributed coverage
Eclipse
Eclipse version 3.3+ (Clover supports 3.2/RAD 7 but Test Optimization is only supported for 3.3+)
JUnit test classes are supported but TestSuites are not currently supported.
TestNG is not currently supported.
Optimization of tests where they reside in different project to the application code is not currently supported (to be addressed in a
future release).
IDEA
IDEA version 8.0+ (Clover supports 7.0 but Test Optimization is only supported for 8.0+)
JUnit test classes are supported but TestSuites are not currently supported.
TestNG is not currently supported.
Related Links
Overview of Test Optimization
Test Optimization Quick Start for Ant
Test Optimization Quick Start for Maven 2
Clover for Maven 2 - Test Optimization Best Practices
Test Optimization Quick Start for Clover-for-Maven 1
Test Optimization for IDEA
About Clover Editions

Clover 3.1 Documentation
11
This page contains information about the different editions of Clover.
On this page:
Overview
Clover Desktop Edition
Clover Server Edition
Overview
Clover editions were introduced with the release of Clover 2.6, in September 2009. Previous versions of Clover do not belong to a particular
edition. Editions only apply to the IDE plugin variants of Clover, i.e. Clover-for-Eclipse and Clover-for-IDEA.
Clover Desktop Edition
Clover Desktop Edition is an affordable option for individual developers, providing code coverage analysis and also the use of test
optimization for developers working in isolation. Clover Desktop Edition is only available for Clover's Eclipse and IDEA plugins. See the
for more information.pricing page
Clover Server Edition
Clover Server edition contains the full suite of report generation and Continuous Integration features for coding in a team environment. The
Server Edition is essentially the full-featured product, simply renamed to Server Edition. Pricing for Server Edition remains the same.
The Desktop Edition only applies to the IDE plugin variants of Clover, i.e. Clover-for-Eclipse and Clover-for-IDEA.
See the for more information.pricing page
Supported Platforms
This page shows the supported platforms for and its minor releases.Clover 3.1.x
Key: = Supported; = Not Supported
Java Version
JRE / JDK
(1)1.4 or later
Groovy Version
Groovy 1.6.2 or later
1.6.8 and 1.7.1 do not support due to a Groovy bugPer-Test coverage
Eclipse and IDEA (No Groovy support)
JRE / JDK (1)1.5 or later
Operating Systems
Microsoft Windows (2)
Linux (2)
Apple Mac OS X (2)
Build Automation Tools
Apache Ant 1.6.1 or later for Java
1.7.0 or later for Groovy
Apache Maven 1 (3)1.0.2 or 1.1 or later
Apache Maven 2 2.0.2 or later

Clover 3.1 Documentation
12
1.
2.
3.
4.
Apache Maven 3 3.0.0 or later
Application Development Frameworks
Grails 1.2 or later
Integrated Development Environments (IDEs)
JetBrains IntelliJ IDEA 7.0 or later
Eclipse
(4)3.2 or later, RAD 7 & 7.5
Visual Studio.NET
Supported Platform Notes
You can a JRE or JDK for Windows/Linux/Solaris. On Mac OS X, a JDK is bundled with the operating system.download
Once a JRE or JDK has been installed, you need to set the environment variable.JAVA_HOME
We strongly recommend the use of a 32-bit JRE/JDK rather than a 64-bit JRE/JDK. 64-bit JREs/JDKs will consume the available
RAM more rapidly, and this may result in poor performance.
Clover is a pure Java application and should run on any operating system platform provided the requirements for the JRE or JDK are
satisfied.
Approximately 100MB will be used by your local Maven repository.
Your Eclipse projects must use the built-in Java Builder for compilation of source code.
Clover does not support AspectJ-based projects. In-editor per-test coverage browsing not supported on Eclipse 3.2 and RAD 7.0.
Clover-for-Eclipse
Clover-for-Eclipse Documentation
What is Clover-for-Eclipse?
Clover-for-Eclipse brings the industry-leading code coverage tool, to the Eclipse integrated developmentAtlassian Clover
environment. Clover-for-Eclipse allows you to easily measure the coverage of your unit tests, enabling targeted work in unit
testing — resulting in stability and enhanced quality code with maximal efficiency of effort.
Getting Started with Clover for Eclipse
Download Clover for Eclipse
Installation Guide
Changelog for latest version of Clover-for-Eclipse
Using Clover for Eclipse
User's Guide
Installation & Configuration Guide
Resources and Support
Forums
Support

Clover 3.1 Documentation
13
Offline Documentation
You can in PDF, HTML or XML format. download the Clover documentation
Recently Updated
No recent updates found.
Clover-for-Eclipse Changelog
See also Clover-for-Ant Changelog
Clover-for-Eclipse Changelog
All versions
Changes in 3.1.0 for Eclipse
Changes in 3.0.0 for Eclipse
Changes in 2.6.3 for Eclipse
Changes in 2.6.2 for Eclipse
Changes in 2.6.0 for Eclipse
Changes in 2.5.1 for Eclipse
Changes in 2.5.0 for Eclipse
Changes in 2.4.3 for Eclipse
Changes in 2.4.2 for Eclipse
Changes in 2.4.0 for Eclipse
Changes in 2.3.2 for Eclipse
Changes in 2.3.1 for Eclipse
Changes in 2.2.1 for Eclipse
Changes in 2.1.0 for Eclipse
Changes in 2.0.3 for Eclipse
Changes in 2.0.2 for Eclipse
Changes in 2.0.1 for Eclipse
Changes in 2.0.0 for Eclipse
Changes in 2.0.0.b2_1 for Eclipse
Changes for the latest major version are as follows:
Changes in 3.0.0 for Eclipse
31 March, 2010
This is a major release which includes a new per-test cover viewer and a new dashboard view for Eclipse.
(7 issues)JIRA Issues
Type Key Summary Priority
CLOV-911 Error enabling Clover plugin in Eclipse
CLOV-901 Eclipse per-test coverage viewer
CLOV-842 Add a Dashboard screen to the Eclipse Plugin
CLOV-809 FileNotFoundExceptions when initstring is more than one path deep
CLOV-804 Enabling Clover on a project sometimes fails if .clover already exists
CLOV-803 Invalid thread access in CEP
CLOV-781 In line per-test coverage viewer for Eclipse
Changes in 2.0.0.b2_1 for Eclipse

Clover 3.1 Documentation
14
Changes in 2.0.0.b2_1 for Eclipse
21 September, 2007
This is a bug fix and usability release. Please also see the core Clover 2 changelog.
Improvements
[CLEP-134] Usability improvements to feature/plugin upgrades.
[CLEP-133] Add acknowledgements page to about dialog for open source libraries used in Clover.
Bugs Fixed
[CLEP-135] Cut dependency between Clover Core feature/plugin and Clover JDT Hooks feature/plugin so each can be installed
independently of the other.
[CLEP-130] HTML report generation ignores unit test results.
Changes in 2.0.0 for Eclipse
Changes in 2.0.0 for Eclipse
17 October, 2007
This is a bug fix and feature release. The full version of the Clover-for-Eclipse plugin is 2.0.0.v20071016211452. Please also see the core
.Clover-for-Ant changelog
Improvements
[CEP-9] Allow instrumented class files to be output to a user-specified directory instead of project output directories
[CEP-10] Add context filter options to HTML/PDF/XML report generation
[CEP-12] Implement regexp context filters for filtering on coverage of methods and statements
[CEP-16] Add support for TestNG test execution
Bug fixes
[CEP-1] Clover sometimes causes JUnit runs to enter infinte lops
[CEP-3] Clover coverage annotation can sometimes corrupt source code display
[CEP-4] *.clover files not marked as hidden from source code control
[CEP-5] Errors when enabling Clover on a project are silently ignored
[CEP-11] Projects sometimes disappear in Coverage Explorer
Changes in 2.0.1 for Eclipse
Changes in 2.0.1 for Eclipse
23 October, 2007
This is a bug fix release. The full version of this release of the Clover-for-Eclipse plugin is 2.0.1.v20071022194021.
Improvements
[CLOV-55] Improve memory usage during instrumentation
Bug fixes
[CLOV-59] NPE thrown from Logger.getInstance()
Changes in 2.0.2 for Eclipse
Changes in 2.0.2 for Eclipse
01 November, 2007
This release addresses some performance issues for large projects, fixes some minor bugs and adds some new features. The full version of
this release of the Clover-for-Eclipse plugin is 2.0.2.v20071101122659.
Errors were reported by the JIRA trusted connection.
APP_UNKNOWN; Unknown Application: {0}; ["confluence:4557196"]
(0 issues)JIRA Issues
Type Key Summary Assignee Reporter Priority Status Resolution Created Updated Due
Errors were reported by the JIRA trusted connection.

Clover 3.1 Documentation
15
APP_UNKNOWN; Unknown Application: {0}; ["confluence:4557196"]
(0 issues)JIRA Issues
Type Key Summary Assignee Reporter Priority Status Resolution Created Updated Due
Changes in 2.0.3 for Eclipse
Changes in 2.0.3 for Eclipse
03 December, 2007
This release fixes some minor bugs and adds some new features. The full version of this release of the Clover-for-Eclipse plugin is
2.0.3.v20071203123733.
Errors were reported by the JIRA trusted connection.
APP_UNKNOWN; Unknown Application: {0}; ["confluence:4557196"]
(0 issues)JIRA Issues
Type Key Summary Assignee Reporter Priority Status Resolution Created Updated Due
Changes in 2.1.0 for Eclipse
Changes in 2.1.0 for Eclipse
14 February, 2008 - Build 20080214
This is a major new release and contains a number of new features. The full Eclipse version number for this build of the plugin is
2.1.0.v20080214147119.
New Features
CEP-48 - A Test Run Explorer view for understanding how your tests contribute to your application's code coverage.
- Per-package coverage clouds so you can easily spot risks or quick wins at the package level as well as at the project level.CEP-47
Bug Fixes
- "Run with Clover" clobbers JVM args set on launch configuration.CEP-46
Please also see the core .Clover-for-Ant Changelog
27 Febuary, 2008 - Build 20080227
This is a bug fix and usability enhancement build. The full Eclipse version number for this build of the plugin is 2.1.0.v20080227152940.
Usability Enhancements
CEP-62 - Usability enhancements to context filtering: new custom context filters are automatically enabled; user is informed if context filter
changes require a rebuild; dialog for enabling/disabling context filters has inverted the checked/unchecked behaviour.
- Made the custom context dialog resizable and with a reasonable starting size.CEP-59
- Clover licenses and other preferences are stored in the installation-specific preference area (or user-specific preference area forCEP-8
read-only installs) and not in the workspace.
- Interval preference fields length behaviour made more appropriate and less variable.CEP-57
Bug Fixes
CEP-58 - Avoiding SWT/AWT compatibility issue on OSX with Java 1.4 which may cause JVM to crash.
- Stopped error dialogs for BadLocationException on every key stroke when coverage annotation calculations fail.CEP-61 - Stopped error dialogs when projects are closed.CEP-60
Changes in 2.2.1 for Eclipse
Changes in 2.2.1 for Eclipse
23 April, 2008 - Build 20080423
This is primarily an usability enhancement release with some new features and bug fixes. The full Eclipse version number for this build of the
plugin is 2.2.1.v20080423154828.
New Features

Clover 3.1 Documentation
16
CEP-37 Support for displaying test coverage information in the Test Run Explorer and Test Contributions views that spans multiple
projects in the workspace.
CEP-70 HTML/PDF/XML reports can now be generated across multiple projects.
CEP-94 HTML/PDF/XML report generation can be forked to better handle reporting on large projects.
CEP-23 Addition of a button to the Coverage Explorer and Test Run Explorer to simultaneously switch Clover on or off for multiple
projects.
CEP-67 The three Clover views will now automatically open if not already opened on enabling Clover on a project.
CEP-66 The user is now prompted to open HTML reports in their browser once generated.
CEP-56 Columns in the Coverage Explorer and Test Run Explorer views have been made moveable and the order is retained across
Eclipse sessions.
Usability Enhancements
CEP-81 The coverage context filter UI has been revamped and made more consistent and usable.
CEP-84 When custom coverage context filters are change the user is prompted to rebuild the project so that the filters can take effect.
CEP-82 Better explanations are given to the regular expressions required for custom context filters.
CEP-86 Clover-enabled projects with "Compiled with Clover" turned off are now visibly differentiated within the Coverage Explorer and
Test Run Explorer
CEP-83 Tooltip text and menu item names have been rewritten to better communicate their actual purpose.
Bug Fixes
CEP-88 The Coverage Explorer and Test Run Explorer now correctly show workspace changes.
CEP-65 The Clover Ant task support for Ant builds within Eclipse now no longer fail with a licensing error even though the license is
valid.
CEP-63 Clover now no-longer allows custom context filters with spaces or commas in their name.
CEP-97 "Run with Clover As... > JUnit Tests" now displayed where appropriate.
Please also see the core .Clover-for-Ant Changelog
Changes in 2.3.1 for Eclipse
Changes in 2.3.1 for Eclipse
02 June, 2008 - Build 20080602
This is an feature release with a small number of bug fixes. The full Eclipse version number for this build of the plugin is
2.3.1.v20080602190340.
Bug Fixes
CEP-116 Ensuring Clover 2 gracefully degrades when installed on Eclipse 3.4 non-final releases.
26 May, 2008 - Build 20080526
This is an feature release with a small number of bug fixes. The full Eclipse version number for this build of the plugin is
2.3.1.v20080526181141.
New Features
CEP-103 Added support in the Coverage Explorer for all Clover column types and user-defined custom column.
Bug Fixes
CEP-105 Added missing menu label for Test Run Explorer menu Layout > Packages
CEP-108 Invalid context regexs no longer stop Clover project properties page from being displayed
Please also see the core .Clover-for-Ant Changelog

Clover 3.1 Documentation
17
Changes in 2.3.2 for Eclipse
Changes in 2.3.2 for Eclipse
16 Sep, 2008 - Build 20080916
This is a minor bug fix release. The full Eclipse version number for this build of the plugin is 2.3.2.v20080916093000. Changes since the last
build include:
Bug Fixes
CEP-162 Fixed compilation problems when project JDK differs from the JRE that launches Eclipse.
19 Aug, 2008 - Build 20080819
This is a minor bug fix release. The full Eclipse version number for this build of the plugin is 2.3.2.v20080819170000. Changes since the last
build include:
Bug Fixes
CEP-159 Fixed problems interpreting project classpath which caused unresolved compiltation errors in instrumented class files.
08 Aug, 2008 - Build 20080808
This is a minor bug fix release. The full Eclipse version number for this build of the plugin is 2.3.2.v20080808200808 (happy Beijing
Olympics!). Changes since the last build include:
Bug Fixes
CEP-156 Fixed license errors when running Clover in Ant through Eclipse.
04 Aug, 2008 - Build 20080804
This is a minor bug fix release. The full Eclipse version number for this build of the plugin is 2.3.2.v20080804163000. Changes since the last
build include:
Bug Fixes
CEP-153 Fixed hide/show editor coverage button.
CEP-152 Fixed instrumentation performance problems for projects with large transitive dependencies.
21 July, 2008 - Build 20080721
This release provides support for RAD 7 & Eclipse 3.4, adds useability enhancements and addresses a small number of bugs. The full
Eclipse version number for this build of the plugin is 2.3.2.v20080721210000. Changes since 2.3.1 include:
Compatibility Enhancement
CEP-20 Added support for RAD 7.
CEP-137 Added support for Eclipse 3.4.
Usability Enhancements
CEP-120 Clover now prompts you to open generated newly XML and PDF reports. HTML/PDF/XML report history also available.
CEP-138 Clover per-project settings now shareably between team members and stored in .settings/com.cenqua.clover.prefs
Bug Fixes
CEP-124 Made Coverage Explorer percentage columns without values render grey rather than red.
CEP-119 Fixed sorting of the "time" column in the Test Run Explorer.
CEP-136 Treemaps display invalid coverage values in tooltips.
CEP-139 HTML/PDF/XML reports launched outside of Eclipse now respect the span value set.

Clover 3.1 Documentation
18
CEP-151 Filtering out source files causes silent compilation errors in non-filtered classes.
Changes in 2.3.2 Beta 2 for Eclipse
09 July, 2008 - Beta 2 Build 20080709
This is an important beta release which provides support for RAD 7 and also addresses a small number of fixes for bugs found since the
laste beta. Support for RAD 7.5 Beta is in progress. The full Eclipse version number for this build of the plugin is 2.3.2.b2-20080709215000.
Changes since 2.3.2 beta 1 include:
Compatibility Enhancement
CEP-20 Added support for RAD 7.
Bug Fixes
CEP-136 Treemaps display invalid coverage values in tooltips.
CEP-145 Instrumented compilation failure when dependent projects export jar files.
Changes in 2.3.2 Beta 1 for Eclipse
04 July, 2008 - Beta 1 Build 20080702
This is an important beta release which provides support for Eclipse 3.4 and also addresses a small number of fixes for bugs found since
version 2.3.1 was released. The full Eclipse version number for this build of the plugin is 2.3.2.b1-20080702160000. Changes since 2.3.1
include:
Compatibility Enhancement
CEP-137 Added support for Eclipse 3.4.
Bug Fixes
CEP-124 Made Coverage Explorer percentage columns without values render grey rather than red.
CEP-119 Fixed sorting of the "time" column in the Test Run Explorer.
Changes in 2.4.0 for Eclipse
Changes in 2.4.0 for Eclipse
05 Nov, 2008 - Build 20081105
This is a feature and useability enhancement release. The full Eclipse version number for this build of the plugin is 2.4.0.v20081105000000.
Changes since the last release include:
New features
CEP-102 Reports now support custom context filters.
CEP-157 "Show in->Coverage Explorer" menu added.
CEP-177 PercentageCoveredContribution & PercentageUncoveredContribution columns now supported which help you work out
packages/files/classes contributing most to your coverage or lack of coverage.
Useability Enhancements
CEP-168 Coverage Explorer columns show more readable names when column width narrows.
CEP-166 Coverage Explorer column graphs disappear when column width narrows too much.
CEP-170 Coverage Explorer now supports hierarchical package representation to better support projects with large numbers of
packages.
Bug Fixes
CEP-162 Fixed compilation problems when project JDK differs from the JRE that launches Eclipse.
CEP-154 Clovered projects don't always appear in the Coverage Explorer when Clover project nature is toggled or projects are loaded

Clover 3.1 Documentation
19
CEP-167 NaN values displayed incorrectly in the Coverage Explorer
CEP-171 Custom percentage-based columns show 100 times their real value
Changes in 2.4.2 for Eclipse
Changes in 2.4.2 for Eclipse
12 Jan, 2009 - Build 20090112
This is a bug fix, performance and useability release. The full Eclipse version number for this build of the plugin is 2.4.2.v20090112XXXXXX.
Changes since the last release include:
Performance Enhancements
CEP-201 For certain projects Clover could cause recompilation of all files all the time even for incremental compilation.
This is now fixed so any project seeing this problem should now see substantial speed increases during incremental
compilation.
CEP-203 More efficient compilation of instrumented source by reducing the amount of class file copying.
This speeds up both full and incremental builds substantially.
Useability Enhancements
CEP-205 If the Clover coverage database is corrupted or no longer compatible with the newly installed version of Clover,
Clover will add an error marker to the project rather than showing an intrusive message box or error dialog.
CEP-196 Clover instrumentation and compilation is now cancellable.
CEP-178 Selected table columns are now visually highlighted in all tables.
Bug Fixes
CEP-194 Character encoding respected when instrumenting source.
CEP-188 Projects with non-default output directories for instrumented .class files no longer require adding this diretory when invoking
"Run with Clover".
This is currently not supported for Eclipse/OSGI plugins, however.
CEP-190 Test Run Explorer now correctly refreshes after coverage changes detected.
CEP-195 Selecting "Enable/disable with Clover" from the context menu now always works.
CEP-24 If the Clover working set is active, source files not in this working set are no longer instrumented.
Changes in 2.4.3 for Eclipse
Changes in 2.4.3 for Eclipse
09 March, 2009 - Build 20090309
This release bring support of new test detection facilities, along with numerous improvements and bug fixes. The full Eclipse version number
for this build of the plugin is 2.4.3.v20090309110000. Changes since the last release include:
New Features
CEP-13 Ability to specify include/exclude patterns or whole root source folders to be instrumented; ability to specify include/exclude
patterns or whole root source folders as containing test source.
Improvements
CEP-211 The reporting wizard now allows you to configure the number of threads to be used during report generation.
CEP-206 Better handling of failures to load the instrumentation database.
CEP-220 Better tooltips and titles for labels in the Metrics box of the Coverage Explorer.
CEP-208 Added an error marker and an accompanying Quick Fix processor to do a clean rebuild of any projects requiring recreation of
the instrumentation database.
CEP-224 Users are now prompted for rebuild when instrumentation or test sources configuration changes.

Clover 3.1 Documentation
20
Bug Fixes
CEP-233 Fixed problem where source coverage annotations and test contributions display may not reliably display.
CEP-237 Fixed Clover Eclipse Ant support so that the property
${clover.eclipse.runtime.jar}
is always resolved.
Changes in 2.5.0 for Eclipse
Changes in 2.5.0 for Eclipse
11 May, 2009 - Build 20090511
Clover's much-lauded feature called Test Optimization is now available in Clover for Eclipse, bringing the ability to run only the tests that
have been affected by changes to program code. In many cases this will cut down the running time of your test phases and allow you to run
them far more often. The full Eclipse version number for this build of the plugin is 2.5.0.v20090511090000.
New Features
CEP-189 Add Test Optimization for Clover for Eclipse.
CEP-291 Allow users to instrument at the statement or method level on a per-project basis.
CEP-285 Allow users to turn off tracking of per-test coverage.
CEP-274 Add source annotations to display coverage by failed test.
CEP-254 Make default flush setting "interval" or "threaded" if the project has a web or j2ee project nature.
Improvements
CEP-298 Improve performance of Coverage Explorer.
CEP-323 Add manifest entries to make clover-runtime.jar a J2EE optional library.
CEP-317 Have a default user specified initstring.
CEP-312 Warn users if enabling too many projects at once that this may cause Eclipse instability.
CEP-294 Default test filter should include classes both ending and beginning with Test in the name.
CEP-288 Rename log setting of "minimal" to "none" and make Clover stop logging to the Eclipse log when this is enabled.
CEP-286 Allow users to choose if per-test coverage data is loaded into memory.
CEP-281 Allow relative initstrings that resolve to files outside of the project.
CEP-280 Add special source annotation for code where both branches aren't covered.
CEP-270 Integrate all Clover views with main Eclipse perspectives.
CEP-213 Allow a way to debug memory exhaustion in forked reporting.
CEP-210 Allow aggregated and non-aggregated coverage modes.
CEP-155 Added example excludes pattern.
Bug Fixes
CEP-289 Automatic full builds that aren't clean builds cause coverage to be 'forgotten'.
CEP-268 NPE reported constantly in Error Log.
CEP-324 Test Contributions view does too much work when not visible.
CEP-319 Eclipse with Windows + JRE 1.4 may fail to compile instrumented source because of long file names.
CEP-316 No source annotations for files with encoding different to the project.
CEP-315 Error marker "Coverage load failed: Background job" appears after enabling Clover or changing the initstring and is hard to get
rid of.
Other manuals for AT-800
1
Table of contents
Other BIRD Test Equipment manuals

BIRD
BIRD 4029 User manual

BIRD
BIRD ECONOLOAD 8730 Series User manual

BIRD
BIRD AT-500 User manual

BIRD
BIRD SignalHawk SH-36S-RM User manual

BIRD
BIRD SMK-3000 Series User manual

BIRD
BIRD FlightHawk User manual

BIRD
BIRD AT-800 User manual

BIRD
BIRD TERMLINE 8141 User manual

BIRD
BIRD AT-400 Antenna Tester AT-400 User manual