- Fixed an issue in newer versions of gradle caused by the movement of the DeprecationLogger class to another package (Issue #168)
-
Dropped support for Versions of Java older than version 8.
-
Dropped support for Cobertura 1.x
-
Added support for Gradle 6.x, with thanks to Roberto Perez Alcolea (Issues #164 and #165).
- This is a minor release that tries to make the plugin work better with other coverage tools like Scoverage by deleting classes from the instrumented_classes directory that didn't actually change. (Issue #160)
- The plugin now supports Gradle 5.1, with thanks to Roberto Alcolea (@rpalcolea)
- Fixed issues introduced by earlier refactorings (Issue #146)
- Fixed a bug that was preventing Cobertura tasks from running on Android projects (Issue #148)
- Fixed Android Tools 3 support with thanks to Eduardo Giménez (@edu-gimenez)
- Added support for Android Tools 3 and Kotlin with thanks to Christoph Walcher (@wiomoc)
- Added
NoClassDefFoundErrors
to the exceptions I'm catching in theChildFirstUrlClassLoader
, thanks to @boschi's suggestion in Issue #89.
Prior to version 4.0, Gradle put the compiled class files from Java, Groovy, and
Scala sources into the same directory (build/classes/main
), Starting with
Gradle 4.0, each language gets its own directory (build/classes/java/main
,
build/classes/groovy/main
, etc.) for compiled classes. The Cobertura plugin
now adds all of the correct directories based on which version of Gradle you are
running, and which plugins have been applied.
- Changed the way auxiliaryClasspath is built. In prior versions, it was
necessary to re-specify the defaults when adding to the auxiliaryClasspath
(Issue #116 and Issue #124). Now, the plugin adds the value of
auxiliaryClasspath in the
cobertura
closure to the defaults, with thanks to @Frank667 - Updated the plugin to build with Gradle 3.2 and bumped the Gradle wrapper.
-
Added the 3 user selectable tasks to the Cobertura group so they show up when you do a
gradle tasks
(Issue #103) -
Added the ability to apply the plugin from
settings.gradle
andinit.gradle
(Issue #109)
- Fixed a classpath issue with Android projects, with thanks to Adam Peck (@dampcake). (Issue #101)
- Added support for Android projects, with much thanks to Gautam Korlam (@kageiit) (Issue #90)
- Fixed unit tests so that they run and pass (Issue #79)
- Fixed a bug in
coberturaCheck
that was causing all builds to fail when thecoverageCheckHaltOnFailure
option was set (Issue #74)
-
Fixed a bug that was preventing the
coberturaCheck
task from running (Issue #70) -
Updated the default version of Cobertura to 2.1.1, which should resolve resolve several issues relating to Java 8 and ASM.
-
Bumped the Gradle wrapper to version 2.3.
-
Fixed the issue with the
coberturaCheck
task that was causing it to skip instrumentation (Issue #63) -
Fixed dry-run behavior (Issue #64)
-
Added support for Cobertura's
encoding
option when generating reports (Issue #43) -
Added the cobertura version to the up-to-date checks so that we re-instrument if the version changes (Issue #52)
-
Fixed the way the plugin tells Cobertura where source directories are. The coverageSourceDirs argument always allowed users to configure this setting, but the default (srcSets.main.java.srcDirs) was set at apply time, so any changes made to source sets in build.gradle was being ignored. The default is now handled at execution time (Issue #53)
-
The plugin is now available on the Gradle Plugin Portal (Issue #54)
-
The plugin can now be applied by 2 names, 'cobertura', and 'net.saliman.cobertura' (Issue #59)
- Added support for customizing the auxiliary classpath, with thanks to Harald Schmitt (Issue #24)
- Added support for the Gradle dashboard, with thanks to vyazelenko (Issues #45 and #46)
-
Fixed the Auxiliary classpath on Windows boxes. (Issue #39)
-
Fixed (again) the classpath issue that was leading to ASM conflicts. The plugin now uses its own child-first classloader to make sure we get the versions Cobertura needs ahead of the classes used by the application.
- Fixed the operation of the coverageClassesTask and coverageTestTask closures. (Issue #38)
-
One of the biggest changes in this release is the behavior of the "cobertura" task. In 2.1.0, it was made to run all the tests in the applying project, as well as tests named "test" in other parts of a multi-project build. This produced undesirable coupling between projects, so this has been removed in 2.2.0. The "cobertura" task now runs only the tests in project. (issue #31)
-
The exact tasks that get run by the "cobertura" task can be configured by setting the coverageTestTasks closure. Ths no-arg closure returns the collection of tasks that should run before the coverage report is generated.
-
Users who need to use older versions of Cobertura can now do so without the Cobertura libraries getting in the way. Some options, such as coverageIgnoreTrivial only work in Cobertura 2.0, so attempting to set those properties in the cobertura block of your build.gradle will result in an error.
-
Groovy and Scala plugins may now be applied before or after the cobertura plugin. (issue #35 and issue #37)
-
If the coberturaReport is in the task graph, the up-to-date status of all tests is set to false (issue #33)
-
A Cobertura Check task has been implemented (issue #29) to check test coverage levels.
-
Support for merging datafiles before generating reports (Issue #10). This has the most value in the parent project of a multi project build. When this happens, the parent project will need to declare a test task dependency on all the child project testing tasks to make sure the reports are accurate.
-
I've added more tests, and hope to add even more soon.
-
Added the coberturaReport task to generate coverage reports. (issue #20)
-
The cobertura task now depends on tasks of type test in the applying project, and tasks named test in child projects (but not all tasks of type test in the child project). It no longer runs tests in parent projects, sibling projects or tests in child projects that are not named "test". (issue #14)
-
The coverageSourceDirs extension property now looks for scala and groovy code by default. (issues #7 and #22)
-
Instrumentation now happens only when source code has changed or the cobertura configuration has changed. (issue #23)
-
Instrumentation now depends on the classes task so that changes to Groovy or Scala source code triggers re-instrumentation. (issue #15)
-
The plugin adjusts dependencies for test tasks added after the plugin is applied (issue #21)
- Updated the plugin to work with Gradle 1.7. Dropped support for prior versions of Gradle.
-
Added support for Cobertura 2.0 and its extra configuration options.
-
Fixed bug that caused the configuration of test tasks to fail on sub-projects that don't have the coberura plugin applied. (issue #8)