Links
Comment on page

Generate and upload reports bundles

How to generate/create and upload reports data/reports bundles
Cover Reports data, referred to as "reports bundles", are generated as part of your code development process and uploaded to Cover Reports. This can be done from Cover CLI and/or Cover Pipeline, using the appropriate dcover commands detailed in this topic. Reports bundles are comprised of the following files:
  • report.json - Diffblue's coverage report.
  • diffblue-tests-jacoco-report.xml - a JaCoCo coverage report providing data for Diffblue tests (created by Diffblue Cover).
  • manual-tests-jacoco-report.xml – a JaCoCo coverage report providing data for manual tests (created by a developer).
Reports bundles can be generated and uploaded as follows:
  • Create, Generate, Upload - create tests, generate the reports bundle, and upload the bundle to the Cover Reports server.
  • Generate Only - generate the reports bundle only, no tests created, no upload.
  • Upload Only - upload an existing reports bundle only.
The associated dcover commands can be run from Cover CLI or integrated into your CI/CD workflow/pipeline as needed.
Before generating any reports bundles, run dcover coverage-reports --preflight to check if all preconditions necessary for generating the reports are met, without creating the reports themselves.

Create, Generate, Upload

This topic details the dcover command to create tests, generate the reports bundle, and upload the bundle to the Cover Reports server.
Prerequisites:
Command details:
Run the following dcover command:
dcover create
--coverage-reports
--upload <reports-server>
--project <name-of-project>
--name <name-of-report>
For example:
dcover create
--coverage-reports
--upload http://cover-reports-service:8080
--project "customer-markets.trading.name.name"
--name "Branch: 1234/feature-TG12345"
Component
Description
dcover create
Creates the Java unit tests for the project.
--coverage-reports
Generates the reports bundle.
--upload <reports-server>
Uploads the reports bundle to the Cover Reports server. Replace <reports-server> with the URL for your server - see your Cover Reports Administrator for help, if needed.
--project <name-of-project>
Sets the name of the Java project that this reports bundle relates to. Replace <name-of-project> with a useful name.
--name <name-of-report>
Sets the name of the reports bundle. Replace <name-of-report> with a useful name. If the --name argument is omitted, the report will be uploaded using the timestamp rather than a name.
The --project and --name arguments are used to structure the uploaded data within Cover Reports. Diffblue recommends that these are considered carefully - see Considerations.
Note: The previous --report argument is being replaced with --upload (Diffblue Cover release 2023.11.01 and later). Use of --report should be avoided as this option will be fully removed in future releases.

Generate Only

This topic details the dcover command to generate the reports bundle only - no tests created, no upload to the server. This can be useful if tests have already been created for the project using dcover create, but the --coverage-reports option wasn't included.
Prerequisites:
Command details:
Run the following dcover command:
dcover coverage-reports
Once the reports bundle has been generated, you can upload the bundle to your Cover Reports server using dcover upload - see Upload Only below.

Upload Only

This topic details the dcover command to upload an existing reports bundle only. This can be useful when the reports bundle has been generated separately, but not uploaded.
Command details:
Run the following dcover command:
dcover upload <reports-server>
--project <name-of-project>
--name <name-of-report>
For example:
dcover upload http://cover-reports-service:8080
--project "customer-markets.trading.name.name"
--name "Branch: 1234/feature-TG12345"
Component
Description
dcover upload
Uploads the reports bundle to the Cover Reports server. Replace <reports-server> with the URL for your server - see your Cover Reports Administrator for help, if needed.
--project <name-of-project>
Sets the name of the Java project that this reports bundle relates to. Replace <name-of-project> with a useful name.
--name <name-of-report>
Sets the name of the reports bundle. Replace <name-of-report> with a useful name. If the --name argument is omitted, the report will be uploaded using the timestamp rather than a name.
The --project and --name arguments are used to structure the uploaded data within Cover Reports. Diffblue recommends that these are considered carefully - see Considerations.

Considerations

When generating, naming, and uploading reports bundles, consider the following. You may also wish to discuss these with your Cover Reports User and Cover Reports Administrator as appropriate.
  • Generate & Upload - Timing: You can generate and upload reports bundles before, during, and after code development. For consistency, you may wish to define specific schedules and you may also find it useful to generate and upload reports for your project before you run dcover create on the project for the first time (useful for setting a coverage baseline) - see Generate Only and Upload Only.
  • Naming Conventions: The --project and --name arguments are used to structure the uploaded data within Cover Reports. Diffblue recommends that you select an appropriate and consistent naming convention for these to help with data visualization in the Cover Reports UI.
  • Authentication: If upload authentication has been enabled by your Cover Reports Administrator, you'll need to use the defined username and password when uploading your reports bundles. See Authenticated uploads for details.