Full name:
com.atlassian.maven.plugins:maven-clover2-plugin:3.1.11:optimize
Description:
Sets the 'test' property on the project which is used by the maven-surefire-plugin to determine which tests are run. If a snapshot file from a previous build, is found, that will be used to determine what tests should be run.
Attributes:
process-test-classes
.Name | Type | Since | Description |
---|---|---|---|
cloverMergeDatabase | String |
- |
The location of the merged clover database to create when running a
report in a multimodule build. Default value is: ${project.build.directory}/clover/cloverMerge.db . |
cloverOutputDirectory | String |
- |
The directory where the Clover plugin will put all the files it
generates during the build process. For example the Clover plugin
will put instrumented sources somewhere inside this directory. Default value is: ${project.build.directory}/clover . |
project | MavenProject |
- |
The Maven project instance for the executing project.
Note: This is passed by Maven and must not be configured by the user. |
Name | Type | Since | Description |
---|---|---|---|
alwaysRunTests | List |
- |
A list of Tests which should always be run. ie they will never be optimized away. |
cloverDatabase | String |
- |
The location of the Clover database. |
debug | boolean |
- |
If you wish to enable debug level logging in just the Clover
plugin, set this to true. This is useful for integrating Clover
into the build Default value is: false . |
enabled | boolean |
- |
Toggles whether or not build optimization is to be done or not. Default value is: true . |
flushInterval | int |
- |
When the Clover Flush Policy is set to "interval" or threaded this
value is the minimum period between flush operations (in
milliseconds). Default value is: 500 . |
flushPolicy | String |
- |
The Clover flush
policy to use. Valid values are directed ,
interval and threaded . Default value is: threaded . |
fullRunEvery | int |
- |
The number of builds to run, before the snapshot file gets deleted.
The snapshot stores the mapping between your test cases and
source code. Over time, this becomes stale, so it is recommended to
regenerate this file, by running all tests, on a regular basis. Default value is: 10 . |
jdk | String |
- |
Whether the Clover instrumentation should use the Clover
jdk14 , jdk15 , jdk16 or
jdk17 flags to parse sources. Valid values are 1.4,
1.5, 1.6 and 1.7 . |
license | String |
- |
The full Clover license String to use. If supplied, this
certificate will be used over licenseLocation . NB.
newline chars must be preserved. A trial Clover license can be
generated
here. |
licenseLocation | String |
- |
A Clover license file to be used by the plugin. The plugin tries to resolve this parameter first as a resource, then as a URL, and then as a file location on the filesystem. A trial Clover license can be generated here. |
minimize | boolean |
- |
Controls whether or not to exclude tests that do not cover any
modified files. If false, (and ordering is not random or original),
Clover will not exclude any of the tests. Instead, they will be run
in an optimal order to ensure the build fails as fast as possible.
ie - tests that cover modify code first, then ascending by test
time. Default value is: true . |
optimizeExcludes | List |
- |
A list of Tests to exclude from build optimization. If neither optimizeIncludes nor optimizeExcludes are supplied, then the excludes specified in the maven-surefire-plugin's configuration will be used. |
optimizeIncludes | List |
- |
A list of Tests to include for build optimization. If neither optimizeIncludes nor optimizeExcludes are supplied, then the includes specified in the maven-surefire-plugin's configuration will be used. |
ordering | String |
- |
NOTE: This currently has no effect, because the maven-surefire-plugin re-orders the tests alphabetically. This controls how Clover optimizes your tests. By default - clover excludes any test case it deems as irrelevant to any changes made to your source code. "failfast" - (default) ensures your build FAILs fast ie: tests relevant to code changes are run first "random" - tests will be shuffled before run. Can be used to determine inter-test-dependencies. |
singleCloverDatabase | boolean |
- |
If true, then a single cloverDatabase will be used for the entire
project. This flag will be ignored if a custom cloverDatabase
location is specified. Default value is: false . |
skip | boolean |
- |
A flag to indicate not to run clover for this execution. If set to
true, Clover will not be run. Default value is: false . |
snapshot | File |
- |
The location to store the clover snapshot file. This file needs to persist between builds to enable Clover's build optimization feature. If not specified, the snapshot will be stored next to the cloverDatabase. |
waitForFlush | boolean |
- |
If true we'll wait 2*flushInterval to ensure coverage data is
flushed to the Clover database before running any query on it.
Note: The only use case where you would want to turn this off is if you're running your tests in a separate JVM. In that case the coverage data will be flushed by default upon the JVM shutdown and there would be no need to wait for the data to be flushed. As we can't control whether users want to fork their tests or not, we're offering this parameter to them. Default value is:true . |
A list of Tests which should always be run. ie they will never be optimized away.
java.util.List
No
The location of the Clover database.
java.lang.String
No
${maven.clover.cloverDatabase}
The location of the merged clover database to create when running a report in a multimodule build.
java.lang.String
Yes
${maven.clover.cloverMergeDatabase}
${project.build.directory}/clover/cloverMerge.db
The directory where the Clover plugin will put all the files it generates during the build process. For example the Clover plugin will put instrumented sources somewhere inside this directory.
java.lang.String
Yes
${project.build.directory}/clover
If you wish to enable debug level logging in just the Clover plugin, set this to true. This is useful for integrating Clover into the build
boolean
No
${maven.clover.debug}
false
Toggles whether or not build optimization is to be done or not.
boolean
No
${maven.clover.optimize.enabled}
true
When the Clover Flush Policy is set to "interval" or threaded this value is the minimum period between flush operations (in milliseconds).
int
No
${maven.clover.flushInterval}
500
The Clover flush
policy to use. Valid values are directed
,
interval
and threaded
.
java.lang.String
No
${maven.clover.flushPolicy}
threaded
The number of builds to run, before the snapshot file gets deleted.
The snapshot stores the mapping between your test cases and source code. Over time, this becomes stale, so it is recommended to regenerate this file, by running all tests, on a regular basis.int
No
${maven.clover.fullRunEvery}
10
jdk:
Whether the Clover instrumentation should use the Clover
jdk14
, jdk15
, jdk16
or
jdk17
flags to parse sources. Valid values are 1.4,
1.5, 1.6 and 1.7 .
java.lang.String
No
${maven.clover.jdk}
The full Clover license String to use. If supplied, this
certificate will be used over licenseLocation
. NB.
newline chars must be preserved. A trial Clover license can be
generated
here.
java.lang.String
No
${maven.clover.license}
A Clover license file to be used by the plugin. The plugin tries to resolve this parameter first as a resource, then as a URL, and then as a file location on the filesystem. A trial Clover license can be generated here.
java.lang.String
No
${maven.clover.licenseLocation}
Controls whether or not to exclude tests that do not cover any modified files. If false, (and ordering is not random or original), Clover will not exclude any of the tests. Instead, they will be run in an optimal order to ensure the build fails as fast as possible. ie - tests that cover modify code first, then ascending by test time.
boolean
No
${maven.clover.optimize.minimize}
true
A list of Tests to exclude from build optimization. If neither optimizeIncludes nor optimizeExcludes are supplied, then the excludes specified in the maven-surefire-plugin's configuration will be used.
java.util.List
No
A list of Tests to include for build optimization. If neither optimizeIncludes nor optimizeExcludes are supplied, then the includes specified in the maven-surefire-plugin's configuration will be used.
java.util.List
No
NOTE: This currently has no effect, because the maven-surefire-plugin re-orders the tests alphabetically. This controls how Clover optimizes your tests. By default - clover excludes any test case it deems as irrelevant to any changes made to your source code. "failfast" - (default) ensures your build FAILs fast ie: tests relevant to code changes are run first "random" - tests will be shuffled before run. Can be used to determine inter-test-dependencies.
java.lang.String
No
${maven.clover.ordering}
The Maven project instance for the executing project.
Note: This is passed by Maven and must not be configured by the user.
org.apache.maven.project.MavenProject
Yes
${project}
If true, then a single cloverDatabase will be used for the entire project. This flag will be ignored if a custom cloverDatabase location is specified.
boolean
No
${maven.clover.singleCloverDatabase}
false
skip:
A flag to indicate not to run clover for this execution. If set to true, Clover will not be run.
boolean
No
${maven.clover.skip}
false
The location to store the clover snapshot file. This file needs to persist between builds to enable Clover's build optimization feature. If not specified, the snapshot will be stored next to the cloverDatabase.
java.io.File
No
${maven.clover.snapshot}
If true we'll wait 2*flushInterval to ensure coverage data is flushed to the Clover database before running any query on it.
Note: The only use case where you would want to turn this off is if you're running your tests in a separate JVM. In that case the coverage data will be flushed by default upon the JVM shutdown and there would be no need to wait for the data to be flushed. As we can't control whether users want to fork their tests or not, we're offering this parameter to them.
boolean
No
${maven.clover.waitForFlush}
true