Meaning of Diffblue Cover output codes (reason, error and testability codes)
The output from Diffblue Cover may contain codes.
- Reason codes usually indicate that Diffblue cannot write tests for parts of the code due to how it is structured.
- Error codes may indicate an issue in Diffblue Cover itself.
- Testability codes indicate whether a method is testable, or is considered valuable to test.
The possible codes are described below:
|R002||Nothing to assert: the constructed class doesn’t have observer methods. Observer methods are parameterless, read-only methods that return the state of the class; for instance,
||Add getter methods to the constructed class.|
|R003||Nothing to assert: the return/parameter types of the method under test don’t have observer methods. Observer methods are parameterless, read-only methods that return the state of the class; for instance, getters,
||Add observer methods to the parameter/return types of the method.|
|R004||Unable to find any meaningful assertion.||Add getter methods in the parameter/return class types of the method under test that access or return fields written by the method under test. This error could also happen because good inputs for the method under test could not be determined.|
|R005||Unable to load class “X”. Loading the class failed (probably because it was not present in the classpath), but it is needed to generate the test.||Check that your classpath is complete; in particular, check that you do not have any dependency exclusions configured.|
|R006||Unable to load class “X”: static initializer failed. The static initializers of the class threw an exception while trying to load it. Diffblue Cover needs to load the class to generate a test.||Check that the class can be loaded without any errors in the environment where you create and run your tests.|
|R007||Unable to instantiate class “X”: no accessible constructor or factory method. Diffblue Cover needs to construct an instance of “X” but we could not find any accessible constructors or factory methods.||Provide a package-visible constructor or factory method for testing that, ideally, takes no arguments and does not throw, return null or return a subtype.|
|R008||Unable to instantiate class X containing the method under test. Diffblue Cover was not able to instantiate the class using accessible constructors or factory methods. We aborted because the method under test lives in this class, or a nested class.||As R007|
|R010||Timeout while generating the arrange/act section of your test. Generating the arrange/act sections of your test took more than X seconds. This often happens because we ran code in your project which requests user input (
|R011||Attempt to “X” broke the sandboxing policy. To generate tests we execute your code in a sandboxed environment which, by default, prevents things like overwriting your files or opening network connections. Your code tried to break the current sandboxing policy, so we aborted.||N/A|
|R012||User code failed badly by throwing a “X”. When trying to execute some of your code, we received a particularly serious error “X” (an instance of
||This will require debugging why your code caused the error; possible mitigations may include modifying the sandboxing policy or increasing timeouts, or changes to your code to make it easier to test.|
|R013||Unable to generate test inputs not throwing a trivial exception: “X”. We failed to find inputs to the method under test which would NOT lead to throwing of a trivial exception, like NullPointerException or LinkageError.||Please see the separate article: Working with code R013.|
|R014||Could not start test generator because “X” could not be found. We could not start the test generator because “X”, which is documented as a requirement for test case generation, could not be found.||Make sure that all required dependencies (JDK, …) are installed in paths where Diffblue Cover can find them.|
|R015||Test replay failed. A test was generated but immediately failed one or more assertions, probably because the method under test is stateful or nondeterministic.||Try splitting stateful or nondeterministic methods into stateless and deterministic parts where the state or nondeterminism is injected via a parameter.|
|R016||Current JVM 8 does not support the JDK 11 which compiled the project. Diffblue Cover is running on JVM version 8, but the project being analyzed was built with JDK version 11. Diffblue Cover needs to be executed with the same or a more recent Java version that the version with which the project was compiled.||Either recompile the project with Java version 8 (or older), or run Diffblue Cover with JVM version 11 (or a more recent Java version). For DCover CLI 3.0 users only, ensure that your
|R017||Unable to create any tests that do not assert on a thrown exception. If only exception test cases are created for a particular method, tests are then discarded as testing only exceptions is not considered to be valuable test coverage and can provide false confidence.||Diffblue Cover could not determine valid inputs for the methods under test. Please ensure factories are added for the input types.|
|R020||Temporary files were created but not deleted.||Ensure that the method under test, or any method called by the method under test, deletes any temporary files created. These must be deleted before the method under test completes.|
|R021||Missing Spring components. In order to generate Spring tests, Diffblue Cover needs several Spring classes and resources on its classpath.||Ensure that your Spring project can execute a trivial Spring controller unit test in its test configuration.|
|E001-E008||Please contact Diffblue Support.|
|E009||Unrecoverable runtime error in the test generator. X where X is a description of the error.||N/A - this is a general unrecoverable error. Please contact Diffblue Support.|
|E010||Created tests cannot be executed because the class
||This generally indicates that there is a version mismatch in the testing framework dependencies which prevents tests from being executed. Class
|E011||Problems in the local build environment have been detected that will prevent Diffblue Cover from verifying the generated tests.||Please check your local build environment.|
|E012||An error occurred when using the build system to execute tests. This will prevent Diffblue Cover from verifying the created tests.||There are several possible causes, please see Working with code E012.|
|E013||Diffblue Cover cannot write tests in the folder x.||Please enable write permission for this folder.|
|E014||Internal error. This problem will prevent Diffblue Cover from validating the created tests.||Please contact Diffblue Support.|
|E015||Diffblue Cover tried to download junit-platform-launcher but did not succeed. This will prevent Diffblue Cover from validating the created tests.||Please see Working with code E015.|
|E016||Failed to connect to analysis service||Please contact Diffblue Support.|
|E017||Failed to retrieve analysis results from analysis service||Please contact Diffblue Support.|
|E018||Skipped retrieving analysis results from analysis service because retrieving results for a previous method failed.||Please contact Diffblue Support.|
|T000||Should be tested.||N/A|
|T001||Trivial getter. Trivial getters are not considered valuable to test.||Information only.|
|T002||Trivial setter. Trivial setters are not considered valuable to test.||Information only.|
|T003||Method not callable. The method under test is not callable from another class in the same package.||Make the method visible to another class in package.|
|T004||Anonymous class. The method under test is in an anonymous inner class.||Factor out the anonymous class into a package-visible class.|
|T005||Trivial constructor. Trivial constructors are not considered valuable to test.||Information only.|
|T006||The method cannot be unit tested because it is a main method.||Information only.|
|T007||Framework configuration callbacks.||Certain framework callbacks (e.g. Spring’s InitBinder) should not be tested directly because they have side effects.|
|T008||The method is private and never called. The method cannot be called from another class in the same package.||If this method is called by reflection then annotate it with @SuppressWarnings(/”unused”). If the method is dead code, remove it from your code base.|
|T009||The method is declared private or in a private class.||It cannot be called from another class in the same package. It will be tested indirectly through other callable methods.
If you want to test this method directly, make the method visible to another class in the package.
|T010||Abstract or interface methods are not callable.||Information only.|
|T011||The method is annotated @Suppress Warnings (\“unused”).||This indicates that the method is probably called by reflection. The method will not be tested directly.
If you want to test this method directly, then made it accessible (by removing the annotation).
|V000||Success. Test compiled and passed during verification.||N/A|
|V001||Test did not compile. Diffblue Cover removed a test which did not compile.||Please contact us through the appropriate support channel with details of your project including the class containing the method under test, dependencies and transitive dependencies in your project, and external dependencies.|
|V002||Test compiled but did not pass. When verifying the individual test case, Diffblue Cover removed the test because it compiled but did not pass when run.||Please contact us through the appropriate support channel with details of your project including the class containing the method under test, dependencies and transitive dependencies in your project, and external dependencies.|
|V003||Test discarded during validation. The test was removed because its test class failed when running the test validation command.||Please see the separate article: Working with code V003.|