LogoLogo
diffblue.comFree trial
  • Discover Diffblue Cover
  • Get Started
    • What is Diffblue Cover?
    • Get started
      • Free trial
      • Get started - Cover Plugin
      • Get started - Cover CLI
      • Get started - Cover Pipeline
      • Get started - Cover Reports
    • Specs & Reqs
    • Reference Deployments
    • Licensing
      • Online license activation
      • Offline license activation
      • Diffblue License Manager
    • Update Cover
    • FAQs
    • Diffblue Learning
      • Get started
        • Just the basics
        • Free trial
        • Cover Plugin (IDE)
        • Cover CLI (Command Line)
      • Developer
        • Unit tests (IDE)
        • Unit tests (CLI)
        • Test coverage
      • DevOps
        • GitHub
        • GitLab
        • Other CI
      • Administrator
        • Admin - IntelliJ
        • Admin - CLI
        • Admin - Reports
      • Test coverage
        • Developer
        • Senior developer
        • Cover Reports Administrator
  • EVALUATION & ONBOARDING
    • Proof of Value
    • Jumpstart
      • Prerequisites for onboarding
      • Phase 1: Up and running
        • Module 1: Create your Cover unit test baseline
        • Module 2: Cover Pipeline CI integration
      • Phase 2: Developer productivity
        • Module 3: Getting started using Cover
        • Module 4: Introduction to Cover Reports
      • Phase 3: Advanced topics
        • Module 5: Speed up your test execution
        • Module 6: Getting more from Cover
  • Features
    • Cover Plugin
      • Writing tests
        • Gutter icons
        • Menu options
        • Run configurations
        • Cover Plugin tool window
        • Test Review
        • Test examples
        • Creating partial tests
        • Creating skeleton tests
        • Covering all enum values
        • Test insertion order
        • Diffblue Sandbox
        • Environment Check Cache
      • Project configuration
        • General dependencies
        • Test framework dependencies
      • Cover Plugin settings
        • Test Naming
        • Test Formatting
        • Spring configuration options
        • Method Annotations
        • Test Directory
        • Reset Cover Plugin settings
      • Cover Plugin admin
        • Core Maintenance
        • Cover Plugin toolbar menu
        • Cover Plugin status bar widget
        • Telemetry
        • Memory management
        • Using SonarQube with Cover Plugin
        • Log files
        • Troubleshooting
    • Cover CLI
      • Writing tests
        • Command summary
        • Test examples
        • Creating partial tests
        • Customizing test inputs
        • Customizing test setup
        • Test naming
        • Test formatting
        • Test insertion order
        • Patch files
        • Diffblue Sandbox
        • Operational behaviors
        • Test validation
      • Project configuration
        • Preflight checks
        • General dependencies
        • Test framework dependencies
        • Compiling your project successfully
          • Building a Maven project
          • Building a Gradle project
        • Configuring Cover to work with your project's build system
          • Quick guide
          • Configuration file in detail
          • Getting Started with Ant Projects
          • Default configuration
        • Mocking using Mockito
        • Spring profiles
        • Runtime environment
      • Commands & Arguments
        • Environment configuration for CI
        • Packages, classes, and methods
        • Quoting command line arguments
        • Argument files
      • Cover CLI admin
        • Core Maintenance
        • Telemetry
        • Memory management
        • Using Cover CLI in Eclipse
        • Using SonarQube with Cover CLI
        • Log files
        • Troubleshooting
      • Environment Configuration
    • Cover Pipeline
      • Cover Pipeline for CI
        • Quick Start - General
        • Quick Start - Jenkins
        • Quick Start - Azure Pipelines
        • Quick Start - AWS Codebuild
        • Integrating Diffblue Cover into CI on pull requests
        • Installation - VMs or CI run
      • Cover Pipeline for GitLab
        • Introduction
        • Installation and initial setup
        • GitLab workflow
        • Configuration
        • Troubleshooting
        • Related topics
      • Cover Pipeline for GitHub
        • Introduction
        • Installation and initial setup
        • GitHub workflow
        • Configuration
        • Troubleshooting
        • Related topics
    • Cover Reports
      • Cover Reports Contributor
        • Java project config (JaCoCo)
        • Generate and upload reports bundles
        • Authenticated uploads
      • Cover Reports User
        • Navigation
        • Dashboards
        • Telemetry data
        • Export API
        • Considerations
      • Cover Reports Administrator
        • Install and update Cover Reports
        • Configuration options
        • Database backup
        • SSO with Cover Reports
        • Uninstall Cover Reports
    • Cover Optimize
      • Get started - Cover Optimize
      • Cover Optimize & Gradle
      • Cover Optimize & Maven
      • Patch files
    • Cover Refactor
      • Get started - Cover Refactor
    • Cover Annotations
      • Mocking Annotations
      • Custom Input Annotations
      • Interesting Value Annotations
    • Output Codes
      • E - Environment Codes
      • L - License Codes
      • R - Reason Codes
      • T - Testability Codes
      • V - Validation Codes
      • Working with output codes
        • Working with code E020
        • Working with codes E057 to E065
        • Working with code E085
        • Working with code R005
        • Working with code R006
        • Working with code R008
        • Working with code R011
        • Working with code R012
        • Working with code R013
        • Working with code R026
        • Working with code R031
        • Working with code V003
    • Tutorials
      • How to measure test quality
      • How to improve code coverage
      • How to test a new feature
      • How to find regressions
      • How to use Diffblue Cover in test driven development (TDD)
      • How to write tests for Kotlin projects
      • Examples of tests created by Diffblue Cover
      • Best practices for testing private methods
  • Updates & Upgrades
    • Update Cover
    • Cover Editions
    • What's new
    • Release archive
      • 2025-05-01
      • 2025-04-02
      • 2025-04-01
      • 2025-03-02
      • 2025-03-01
      • 2025-02-02
      • 2025-02-01
      • 2025-01-02
      • 2025-01-01
      • 2024-12-02
      • 2024-12-01
      • 2024-11-02
      • 2024-11-01
      • 2024-10-02
      • 2024-10-01
      • 2024-09-02
      • 2024-09-01
      • 2024-08-02
      • 2024-08-01
      • 2024-07-04
      • 2024-07-03
      • 2024-07-01
      • 2024-06-02
      • 2024-06-01
      • 2024-05-02
      • 2024-05-01
      • 2024-04-02
      • 2024-04-01
      • 2024-03-02
      • 2024-03-01
      • 2024-02-02
      • 2024-02-01
      • 2024-01-02
      • 2024-01-01
      • 2023-12-02
      • 2023-12-01
      • 2023-11-03
      • 2023-11-02
      • 2023-11-01
      • 2023-10-02
      • 2023-10-01
      • 2023-09-02
      • 2023-09-01
      • 2023-08-02
      • 2023-08-01
      • 2023-07-03
      • 2023-07-02
      • 2023-07-01
      • 2023-06-02
      • 2023-06-01
      • 2023-05-02
      • 2023-05-01
      • 2023-04-02
      • 2023-04-01
      • 2023-03-02
      • 2023-03-01
      • 2023-02-02
      • 2023-02-01
      • 2023-01-02
      • 2023-01-01
      • 2022-12-02
      • 2022-12-01
      • 2022-11-02
      • 2022-11-01
      • 2022-10-03
      • 2022-10-02
      • 2022-10-01
      • 2022-09-02
      • 2022-09-01
      • 2022-08-05
      • 2022-08-03
      • 2022-08-02
      • 2022-08-01
      • 2022-07-02
      • 2022-07-01
      • 2022-06-02
      • 2022-06-01
      • 2022-05-02
      • 2022-05-01
      • 2022-04-02
      • 2022-04-01
      • 2022-03-02
      • 2022-03-01
      • 2022-02-02
      • 2022-02-01
      • 2022-01-02
      • 2022-01-01
      • 2021-06-02
      • 2021-02-01
  • Legal
    • Diffblue Legal
      • Diffblue End User License Agreement (EULA)
      • Cover Third Party Notices and/or Licenses
      • Privacy Notice
Powered by GitBook
On this page
  • Prerequisites
  • Cover Plugin & Cover CLI
  • Cover Plugin
  • Cover Pipeline for GitLab
  • Cover Reports
  • Cover Refactor
  • Spring
  • Dependencies
  • Spring projects and Hamcrest
  • Spring WebFlux projects and Spring Security
  • System Specifications & Requirements
  • Supported Operating Systems
  • Supported IntelliJ Versions
  • Supported Java Versions
  • Supported Jakarta EE Versions
  • Supported Spring Versions
  • Supported Kotlin Versions
  • Supported Build Tools
  • Supported Test Frameworks
  • Supported Mock Frameworks
  • Supported JaCoCo Versions
  • Supported Jersey Versions
  • Coverage Measurement
  • Creating Tests - Scope
  • Cover Reports

Was this helpful?

Export as PDF
  1. Get Started

Specs & Reqs

PreviousGet started - Cover ReportsNextReference Deployments

Last updated 6 days ago

Was this helpful?

Prerequisites

Diffblue Cover requires that the system environment (hardware, operating system, network connectivity, Java installation) as well as the project environment (build tooling, dependencies, presence of artifacts, existing unit tests) meet the minimum requirements as outlined below. Diffblue Cover will perform an environment check before analysis begins to ensure that the requirements are met.

Cover CLI provides a --preflight option (see Preflight checks) which can be used to check the status of the prerequisites without performing the project analysis. This option can also be run without a license key.

Cover Plugin & Cover CLI

  • 32 GB RAM, 5 GB minimum available disk space, 4 CPU cores

  • 8GB Java heap allocated

  • TCP connection *

  • Windows 11 Pro, Windows 10 Enterprise, Ubuntu 18.04, RHEL 7.7, macOS 10.15

  • The latest or n-1 64-bit sub-version of Java 8 (8u391 & 8u381), Java 11 (11.0.21 & 11.0.20), Java 17 (17.0.9 & 17.0.8), Java 21 (21.0.1)

  • For Maven projects: Maven version 3.2.5+

  • For Gradle projects: Gradle version 4.9+ (must be ).

  • For Ant projects: Ant version 1.10.4+

  • JUnit 4.11 - 4.13, JUnit 5.0 - 5.12.2, or TestNG 6.0.1 - 7.10.2.

  • For Java 8 projects: Mockito 1.9.5 - 4.11.0

  • For Java 11 projects: Mockito 2.22.0 - 5.14.2

  • For Java 17 projects: Mockito 4.1.0 - 5.14.2

  • For Java 21 projects: Mockito 4.1.0 - 5.14.2

  • For Kotlin projects: one of the above versions of Java and associated Mockito

  • All necessary tooling to build the project

  • The project must compile and run with no failing unit tests

  • Access to a dependency repository to download transient dependencies

  • Access to the Diffblue licensing server for remote license check

* Cover requires the use of an analysis service that communicates with Cover Plugin and Cover CLI via TCP connections on localhost. In particular, Cover must be able to start up the analysis service and open a bi-directional TCP connection between the frontend and the service.

Cover Plugin

  • IntelliJ Community or Ultimate version 2025.1 and 2024.3

  • One instance of the Diffblue Cover Plugin for IntelliJ, per project

  • A minimum of 4GB memory allocated to IntelliJ

Cover Pipeline for GitLab

  • GitLab subscription - Free, Premium, or Ultimate Edition.

Cover Reports

Server hosting Cover Reports - Cover Reports Administrator:

  • 4GB RAM (8GB recommended), 2GB* minimum available disk space, 4 CPU cores.

  • 2GB Java heap allocation, 4GB recommended.

  • Docker Install - Docker Engine 20.10.17, Docker Compose v2.10.2, and if you're using Docker Hub you'll also need an internet connection.

  • Zip Install & Windows Installer - Java JDK 17+ (and available in your PATH system environment variable). For production use, you'll also need to provide a vanilla PostgreSQL 14 database (see Cover Reports > Configuration options).

  • Windows Install - Windows Server 2019 and above, Windows 10 and above.

  • All - Network connectivity between the server(s) and client workstations. Note that if the Cover Reports server and database server are on different hosts, good network connectivity between them will ensure good performance.

* Note that the database server will store the data uploaded to Cover Reports. Sufficient storage should be ensured for projected usage.

Client workstation - Cover Reports Contributor:

  • Diffblue Cover CLI

  • Java 8 and 11 Projects: JaCoCo 0.8.3+

  • Java 17 Projects: JaCoCo 0.8.7+

  • Java 21 Projects: JaCoCo 0.8.11+

  • Network connectivity between the user's workstation and the Cover Reports server.

Client workstation - Cover Reports User:

  • The latest version of Chrome, Edge, Safari, or Firefox with a screen resolution of 1920 x 1080 or higher.

  • Network connectivity between the user's workstation and the Cover Reports server.

Cover Refactor

OpenRewrite Maven or Gradle plugin (and its transitive dependencies) must be available in your local Maven or Gradle mirror.

  • OpenRewrite Gradle plugin: 6.12.0

  • OpenRewrite Maven plugin: 5.28.0

Spring

Spring and Spring Boot versions are required to be compatible with your version of Java, as well as each other. Diffblue Cover supports the following:

  • Java 8 Projects: Spring Boot 1.3.3 to 2.7.x, Spring Core 4.1.1 to 5.3.x

  • Java 11 Projects: Spring Boot 2.1.0 to 2.7.x, Spring Core 5.1.0 to 5.3.x

  • Java 17 Projects: Spring Boot 2.4.0 to 3.1.x, Spring Core 5.3.1 to 6.0.x

  • Java 21 Projects: Spring Boot 2.4.0 to 3.1.x, Spring Core 5.3.1 to 6.0.x

  • Kotlin Projects: any of the above combinations to support the Java tests

Dependencies

Dependencies required for running tests should be in the project configuration. Additional libraries may also be necessary depending on the project under test.

Dependency
When
Version

Surefire Plugin (org.apache.maven.plugins:maven-surefire-plugin)

When using Maven and junit-jupiter-engine

3.0.0-M7

JUnit (junit:junit or org.junit.jupiter:junit-jupiter-engine)

Unless using TestNG, Spring, or Spring Boot

4.11+

JUnit Launcher ( org.junit.platform:junit-platform-launcher)

When using junit-jupiter-engine, unless using Maven, Spring or Spring Boot

1+

TestNG (org.testng:testng)

Unless using JUnit, Spring, or Spring Boot

6 or 7

Spring Boot Test ( org.springframework:spring-boot-test)

When using Spring Boot ( org.springframework:spring-boot)

2+, matching version

Spring Boot Starter Test ( org.springframework.boot:spring-boot-starter-test)

When using Spring Boot ( org.springframework:spring-boot) for Spring WebFlux projects

2+, matching version

Spring Test (org.springframework:spring-test)

When using Spring ( org.springframework:spring-core) unless using Spring Boot

4.1.1+, matching version

Spring Boot Test Autoconfigure ( org.springframework.boot:spring-boot-test-autoconfigure)

When using Spring ( org.springframework:spring-core) for Spring WebFlux projects unless using Spring Boot

2+, matching version

Mockito (org.mockito:mockito-core)

4.1.0+ for Java 21

4.1.0+ for Java 17

2.22.0+ for Java 11

1.9.5+ for Java 8

Other dependencies listed below may be needed, if they are transitive dependencies of your project. If one of these dependencies is required but missing, tests will be generated for some classes but not others. A message will appear in the console output indicating a missing dependency.

Dependency
Version

Java Servlet API ( javax.servlet:javax.servlet-api or jakarta.servlet:jakarta.servlet-api)

4+, matching version

JSR107 API and SPI (javax.cache:cache-api)

0.2+, matching version

Spring Boot Starter Test ( org.springframework.boot:spring-boot-starter-test)

2+, matching version

Spring Security Config ( org.springframework.security:spring-security-config)

4.2.1+, matching version

Spring Web MVC ( org.springframework:spring-webmvc)

5+, matching version

Reactor Test ( io.projectreactor:reactor-test)

3.1+

Spring projects and Hamcrest

Either:

  • Use the spring-boot-starter-test dependency to add Hamcrest.

Spring WebFlux projects and Spring Security

When Spring Security is configured for a project in order to unlock full test generation capabilities for Spring WebFlux controllers write a custom configuration to deactivate CSRF(Cross-Site Request Forgery) security for unit tests, which can later be imported in the base class for your test:

@Configuration
@EnableWebFluxSecurity
public class WebFluxTestConfig {
@Bean
public SecurityWebFilterChain filterChain(ServerHttpSecurity http) {
    return http.csrf().disable().build();
  }
}

System Specifications & Requirements

Supported Operating Systems

OS
Cover CLI
Cover Plugin

Windows 11 Pro

✅

✅

Windows 10 Enterprise

✅

✅

Ubuntu 18.04

✅

✅

RHEL 7.7

✅

✅

macOS 10.15

✅

✅

Supported IntelliJ Versions

Cover Plugin for IntelliJ supports the latest and the previous versions of IntelliJ.

IntelliJ
Cover Plugin

IntelliJ Community 2025.1

✅

IntelliJ Ultimate 2025.1

✅

IntelliJ Community 2024.3

✅

IntelliJ Ultimate 2024.3

✅

Supported Java Versions

Java Version
Cover CLI
Cover Plugin

Open JDK

✅

✅

Oracle JDK 8 (version 161+)

✅

✅

Java 8 (8u391 & 8u381)

✅

✅

Java 11 (11.0.21 & 11.0.20 - note that Java 11.0.7 is NOT supported)

✅

✅

Java 17 (17.0.9 & 17.0.8)

✅

✅

Java 21 (21.0.1)

✅

✅

Note that only 64 bit versions of Java are supported.

Supported Jakarta EE Versions

Jakarta
Cover CLI
Cover Plugin

Java EE 8/Jakarta EE 8 Dependency Injection *

✅

✅

Jakarta EE 9 Dependency Injection *

✅

✅

Jakarta EE 10 Dependency Injection *

✅

✅

* Note that Diffblue Cover does not use Jakarta EE application context for tests, all injected dependencies will be mocked.

Supported Spring Versions

Spring *
Cover CLI
Cover Plugin

Java 8 Projects: Spring Boot 1.3.3 to 2.7.x, Spring Core 4.1.1 to 5.3.x, Spring WebFlux 5.0.0 to 5.3.x, Spring Boot Starter WebFlux 2.0.0 to 2.7.x

✅

✅

Java 11 Projects: Spring Boot 2.1.0 to 2.7.x, Spring Core 5.1.0 to 5.3.x, Spring WebFlux 5.1.0 to 5.3.x, Spring Boot Starter WebFlux 2.1.0 to 2.7.x

✅

✅

Java 17 Projects: Spring Boot 2.4.0 to 3.1.x, Spring Core 5.3.1 to 6.0.x, Spring WebFlux 5.3.1 to 6.0.x, Spring Boot Starter WebFlux 2.4.0 to 3.1.x

✅

✅

Java 21 Projects: Spring Boot 2.4.0 to 3.1.x, Spring Core 5.3.1 to 6.0.x, Spring WebFlux 5.3.1 to 6.0.x, Spring Boot Starter WebFlux 2.4.0 to 3.1.x

✅

✅

Spring, Spring Boot and Spring WebFlux versions are required to be compatible with your version of Java, as well as each other.

Supported Kotlin Versions

Currently all 64 bit versions of Kotlin are supported.

Kotlin
Cover CLI
Cover Plugin

Kotlin

✅

✅

Note that Cover writes Java tests for Kotlin code, so you will also need a suitable Java installation with appropriate Java dependencies.

Supported Build Tools

Tool
Cover CLI
Cover Plugin

✅

✅

Maven 3.2.5+

✅

✅

Ant 1.10.14+

✅

Supported Test Frameworks

Framework
Cover CLI
Cover Plugin

JUnit 4 - 4.11 to 4.13

✅

✅

JUnit Jupiter 5 - 5.0 to 5.12.2

✅

✅

TestNG 6.0.1 to 7.10.2

✅

✅

JUnit 4

Diffblue Cover supports JUnit 4, from JUnit 4.11 to JUnit 4.13. In the CLI, you can force the usage of JUnit 4 by passing the --testing-framework=junit-4 option. In the plugin, you can select JUnit 4 as a testing framework in the settings dialog.

JUnit Jupiter 5

Diffblue Cover supports JUnit Jupiter, from JUnit Jupiter 5.0 to JUnit Jupiter 5.12.2 In the CLI, you can force the usage of JUnit 5 by passing the --testing-framework=junit-5 option. In the plugin, you can select JUnit 5 as a testing framework in the settings dialog.

You may need some specific set-up for your build system to work properly with JUnit 5, in particular if you wish to use Diffblue Cover's built-in test validation. See Building a Gradle project or Building a Maven project for details.

TestNG 6 and 7

Diffblue Cover supports TestNG versions 6 and 7. In the CLI, you can force the usage of TestNG by passing the --testing-framework=testng option. In the plugin, you can select TestNG as a testing framework in the settings dialog.

Supported Mock Frameworks

Framework
Cover CLI
Cover Plugin

Mockito 1.9.5 - 4.11.0 for Java 8

✅

✅

Mockito 2.22.0 - 5.14.2 for Java 11

✅

✅

Mockito 4.1.0 - 5.14.2 for Java 17

✅

✅

Mockito 4.1.0 - 5.14.2 for Java 21

✅

✅

Supported JaCoCo Versions

JaCoCo
Cover CLI
Cover Plugin

JaCoCo 0.8.3+ for Java 8 and 11

✅

✅

JaCoCo 0.8.7+ for Java 17

✅

✅

JaCoCo 0.8.11+ for Java 21

✅

✅

Supported Jersey Versions

Jersey
Cover CLI
Cover Plugin

Jersey 2

✅

✅

Jersey 3

✅

✅

For Jersey 2 and 3 support, the following dependencies are required for test generation:

  • org.glassfish.jersey.test-framework:jersey-test-framework-core

  • org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-inmemory

Coverage Measurement

Tool
Cover CLI
Cover Plugin

Externally via JaCoCo, SonarQube etc.

✅

✅

Creating Tests - Scope

Level
Cover CLI
Cover Plugin

Per method

✅

✅

Per class

✅

✅

Per package *

✅

✅

Per module **

✅

✅

Exclude methods from analysis

✅

* For Cover Plugin, this feature is not available in the Community Edition.

** For Cover Plugin, this feature is only available in the Enterprise Edition.

Cover Reports

Database
Docker
Zip

Postgres 14*

Included

Optional

H2

Included

* For Cover Reports, when using our Docker distribution Postgres 14 is included. When using Zip distribution, H2 is included. However you can provide a self hosted Postgres 14 database for production purposes. We support vanilla Postgres 14. Postgres 15+ versions and alternative distributions can be used at your own risk.

Add org.hamcrest:hamcrest. The version of Hamcrest needs to match the relevant version of spring-boot-test. For example, if the user has spring-boot-test:2.4.6, they should look at the dependency list: . This shows that the matching version is Hamcrest 2.2 (you may have to scroll).

Gradle 4.9+ (must be ).

✅

compatible with your version of Java
Maven Repository: org.springframework.boot spring-boot-starter-test 2.4.6
compatible with your version of Java
(requires setup)