2024-07-01

This release enhances the quality of assertions in unit tests written by Cover, improving both readability and overall test quality. Full details of these updates can be found in the release notes.

Important Notices

Upgrade Considerations

  • Test Code Changes: Improvements in how Cover selects and writes assertions may result in significant changes to existing tests.

  • Cover Reports requires Java 17: Cover Reports now requires Java 17 due to an upgrade to Spring Boot 3 and Spring 6. Ensure your environment is updated accordingly.

Deprecations

  • JUnit 4.7-4.10: Deprecated in a previous release. Please upgrade to JUnit 4.11 or higher to avoid future compatibility issues. Support for JUnit 4.7-4.10 will be removed in a future release.

Removals

  • CLI --project option: Deprecated in a previous release and removed in this release. Please use --project-name and --location options instead. For more details, refer to the Generate and upload reports bundles documentation.

Enhancements

  • Cover now produces assertions for base class getters when writing tests for simple constructors. [Ref: TG-21562]

  • Cover now provides more detailed information and remediation advice when the internal analyzer process fails to start up. [Ref: TG-21341]

  • Cover now makes better decisions about which inputs to assert on. [Ref: TG-21246]

  • CLI: Cover's dcover build command now shows build progress when building multiple modules. [Ref: TG-21198]

  • Cover now writes tests with more concise assertions for StringBuffer, StringBuilder, URL, URI and UUID types. [Ref: TG-20803]

  • Cover now writes tests which reuse existing objects for method references, avoiding the creation of new objects. [Ref: TG-20690]

  • Cover now writes tests that reference Consumer and Supplier types. [Ref: TG-20685]

Resolved Issues

  • Resolved an issue which caused Cover to write tests with unused statements inside StepVerifier lambdas. [Ref: TG-21565]

  • CLI: Resolved an issue which, in some circumstances, prevented Cover from identifying modules in a multi-module Maven project when the root module was not a parent of the other modules. [Ref: TG-21544]

  • Reports: Updated to Spring Boot 3 and Spring 6 to remove a vulnerability. Cover Reports now requires an environment with Java 17. [Ref: TG-20973]

  • Resolved an issue which, in some circumstances, caused Cover to assert on the size of a changed collection, rather than the contents. Cover now uses assertSame in these scenarios. [Ref: TG-20234]

Known Issues

  • Plugin: Cover incorrectly provides a menu option to write tests for a test file. [Ref: TG-17163]

  • CLI & Plugin: Cover may write tests for JUnit 4.10 and lower that do not compile due to the use of assertNotEquals. [Ref: TG-17605]

  • Cover supports Open JDK and Oracle JDK; results with other JDKs may differ due to the variability in their implementations of Java. [Ref: TG-19345]

  • In rare circumstances Cover may encounter an F009: Internal error while writing tests using Mockito 5. To avoid this issue use a version of Mockito earlier than 5. [Ref: TG-19610]

  • Under some circumstances, when writing Java tests for Kotlin code, Cover may produce non-compiling tests. [Ref: TG-20759]

Last updated