Test validation
How newly created tests are validated by Diffblue Cover CLI. (Any tests that fail compilation or execution are removed.)
After tests have been generated, Cover validates newly created tests by invoking the test phase of your build tool (
Maven
, Gradle
). Cover will then remove any created tests that fail compilation or execution.- Existing unit tests must both compile and pass (
mvn test
,gradle test
) beforedcover create
is invoked.Run with--skip-test-validation
if this is not the case. - If unvalidated JUnit 5 tests (those which fail to compile or run successfully) are generated by
dcover create
, please confirm that runningmvn test
actually executes your unit tests. JUnit 5 requires at minimum Maven Surefire v2.22.0 to work, and if an older version is presentmvn test
will pass without executing any tests. You can specify the Surefire Plugin version in your POM using:<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.22.2</version></plugin></plugins></build> - When running
mvn test
,dcover
can disable known style checking plugins (checkstyle
,spring-javaformat
) by using the--ignore-stylechecks
argument. - Test validation is bypassed if a build tool (
Maven
,Gradle
) is not detected from your environment.In that case it is possible that some created tests may fail compilation or execution.
The
-D
or --define
option allows the user to pass additional system properties to dcover
for test creation and execution.Any created tests may depend upon these user-specified system properties and may not execute successfully without them.
During test validation
dcover
will forward user-specified system properties to your build tool, be that Maven
or Gradle
.Maven
is able to utilize these forwarded properties when executing tests for test validation. No configuration is required.However
Gradle
does not forward system properties to executed tests and will require further configuration to do so. In such a case test validation is likely to fail out-of-the-box without changes to your build script (build.gradle
or build.gradle.kts
).In any case, for
Maven
and Gradle
you will need to configure test execution in your build script to supply these same user-specified system properties when executing those tests outside dcover
.Last modified 23d ago