New in version 3.1.
Specify the CTest CoverageCommand
setting in a ctest(1)
dashboard client script.
Using Cobertura as the coverage generation within your multi-module Java project can generate a series of XML files.
The Cobertura Coverage parser expects to read the coverage data from a single XML file which contains the coverage data for all modules. Cobertura has a program with the ability to merge given cobertura.ser
files and then another program to generate a combined XML file from the previous merged file. For command line testing, this can be done by hand prior to CTest looking for the coverage files. For script builds, set the CTEST_COVERAGE_COMMAND
variable to point to a file which will perform these same steps, such as a .sh
or .bat
file.
set(CTEST_COVERAGE_COMMAND .../run-coverage-and-consolidate.sh)
where the run-coverage-and-consolidate.sh
script is perhaps created by the configure_file()
command and might contain the following code:
#!/usr/bin/env bash CoberturaFiles="$(find "/path/to/source" -name "cobertura.ser")" SourceDirs="$(find "/path/to/source" -name "java" -type d)" cobertura-merge --datafile coberturamerge.ser $CoberturaFiles cobertura-report --datafile coberturamerge.ser --destination . \ --format xml $SourceDirs
The script uses find
to capture the paths to all of the cobertura.ser
files found below the project’s source directory. It keeps the list of files and supplies it as an argument to the cobertura-merge
program. The --datafile
argument signifies where the result of the merge will be kept.
The combined coberturamerge.ser
file is then used to generate the XML report using the cobertura-report
program. The call to the cobertura-report program requires some named arguments.
--datafila
path to the merged .ser
file
--destination
path to put the output files(s)
--format
file format to write output in: xml or html
The rest of the supplied arguments consist of the full paths to the /src/main/java
directories of each module within the source tree. These directories are needed and should not be forgotten.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/variable/CTEST_COVERAGE_COMMAND.html