-
Fix a rare edge case where
count_testwas called before.current_testhas been initialized leading to crash (@maksymiuks, #631). -
Fix rare error in
clean_coverage_testswhereNAwere being compared inifcondition (@maksymiuks, #631).
-
Added support for
klmr/boxmodules. This works best withfile_coverage(). (@radbasa, #491) -
Performance improvement for compiled code with a lot of compilation units (@krlmlr, #611)
-
Fix R CMD check NOTE for upcoming R 4.6: non-API calls to SET_BODY, SET_CLOENV, SET_FORMALS (@t-kalinowski, #587)
-
Messages are now displayed using cli instead of crayon (@olivroy, #591).
-
covr now uses
testthat::with_mocked_bindings()for its internal testing (@olivroy, #595). -
Fix a bug preventing
package_coverage()from running tests wheninstall_pathis set to a relative path (@gergness, #517, #548). -
Fixed a performance regression and an error triggered by a change in R 4.4.0. (@kyleam, #588)
-
Fixed an issue where attempting to generate code coverage on an already-loaded package could fail on Windows. (@kevinushey, #574)
-
Prevent
covr.record_testsoption from logging duplicate tests when the same line of testing code is hit repeatedly, as in a loop. (@dgkf, #528) -
Normalize
install_pathpath before creating directory to prevent failures when running covr in a subprocess using a path with Windows\\path separators. (@maksymiuks, #592)
- Fix for a failing test on CRAN
-
Updates to internal usage of
is.atomic()to work with upcoming R release (@mmaechler , #542) -
package_coverage()now works correctly with ignore files when it is not run in the package root directory (@mpadge, #538)
-
to_cobertura()is now explicit about the doctype of the resulting XML. It also sets a source path if recorded. (@mmyrte, #524) -
The internal generic
merge_coverage()now correctly registers the S3 methods. -
The internal test for recording large calls no longer assumes R is on the system PATH.
-
Added
covr.record_testsoption. WhenTRUE, this enables the recording of the trace of the tests being executed and adds an itemization of which tests result in the execution of each trace. For more details see?covr.record_tests(@dgkf, #463, #485, #503) -
as.data.frame()now returns an 0 row data frame when there are no functions in a package (#427) -
codecov()is now more robust whencoverageis not the output frompackage_coverage()andtokenis not provided (#456) -
package_coverage(code = )now accepts character vectors of length greater than 1 (@bastistician, #481) -
package_coverage()now handles packages with install or render time examples (#488) -
package_coverage()now sets the environment variableR_TESTSto the tests-startup.R file like R CMD check does (#420) -
report()now provides a more detailed error message if theDTandhtmltoolsdependencies are not installed (#500). -
Fix
parse_gcovbug when package is stored in directory with regex special characters, see #459 -
Error/warning thrown for, respectively, missing gcov or empty parsed gcov output (@stephematician, #448)
-
Support Google Cloud Build uploading reports to Codecov.io (@MarkEdmondson1234 #469)
-
covr is now licensed as MIT (#454)
-
Generated files from cpp11 are now ignored (#437)
-
codecov()andcoveralls()now retry failed requests before raising an error (#428, @jameslamb)
-
codecov()now supports GitHub Actions for public repositories without having to specify a token. -
New
to_sonarqube()function added to support SonarQube generic XML format (@nibant, @Delfic, #413).
-
codecov()now supports GitHub Actions. -
New
in_covr()function added to return true if code is being run by covr (#407). -
file_coverage(),environment_coverage()andfunction_coverage()now setR_COVR=true, to be consistent withpackage_coverage()(#407)
- Fix test failures in the development version of R (4.0.0) (#400)
- Fix inadvertent regression in return visibility when functions are covered.
covr versions prior to 3.3.0 surrounded each statement in
{blocks. covr 3.3.0 switched to using({, but this caused an inadvertent regression, as(will make the result visible it is the last expression in a function. Usingif (TRUE) {restores the previous behavior. (#391, #392)
-
New
azure()function added to make it easy to use covr on Azure Pipelines (#370) -
Work around issues related to the new curly curly syntax in rlang (#379, #377, rlang#813)
-
Compiled code coverage has been improved, in particular C++ templates now contain the merged coverage of all template instances, even if the instances were defined in separate compilation units. (#390)
-
codecov()now includes support for the flags field (#365) -
codecovnow lookscodecov.ymlfor token ifCODECOV_TOKENenvvar is not set (@MishaCivey #349). -
per_line()now does not track lines with only punctuation such as}or{(#387) -
tally_coverage()now includes compiled code, like it did previously (#384) -
Define the necessary coverage flags for C++14, C++17 and C++20 (#369).
-
to_cobertura()now works with Cobertura coverage-04.dtd (@samssann, #337). -
R6 class generators prefixed with
.are now included in coverage results (@jameslamb, #356). -
package_coverage()gains optionpre_clean, set toFALSEto disable cleaning of existing objects before runningpackage_coverage()(@jpritikin, #375)
- Fix for regression when testing coverage of packages using mclapply (#335).
- Previously deprecated
shine()has been removed. Instead usereport().
-
file_report()added when viewing coverage for a single file (#308). -
display_name()is now exported, which can be useful to filter the coverage object by filename. -
environment_coverage()added, mainly so it can be used fordevtools::test_coverage_file(). -
gitlab()function added to create a coverage report for GitLab using GitLab's internal pages (@surmann, #327, #331). -
The (optional) dependency on shiny has been removed.
report()can now be built with only DT and htmltools installed.
-
Fix for gcc-8 gcov output producing lines with no coverage counts in them (#328)
-
impute_srcref()now handles...and drop through arguments in switch statements (#325). -
tally_coverage()now avoids an error when there are NA values in the source references (#322). -
covr(clean = TRUE)now cleans the temporary library as well (#144) -
package_coverage()now returns the end of the file if there is a test error (#319) -
report()now handles reports in relative paths with subdirectories correctly (#329) -
report()reworked to look more like codecov.io and to display the overall coverage (#302, #307). -
DT explicitly loaded early in
report()so that failures will occur fast if it is not installed. (#321, @renkun-ken).
shine()has been deprecated in favor ofreport().
-
Add support for
.covrignorefiles (#238), to exclude files from the coverage. -
Support future versions of R which do not use parse data by default (#309).
-
Allow using
trace_calls()for manually adding functions to package trace that are not found automatically (#295, @mb706).
-
Fix errors when R is not in the
PATH(#291) -
Fix line computations when relative paths are being used (#242).
-
Fix for Coveralls
Build processing error.(#285) on pro accounts from Travis CI (#306, @kiwiroy). -
Keep attributes of function bodies (#311, @gaborcsardi)
-
Add an RStudio Addin for running a coverage report.
-
Never use mcexit fix on windows (#223).
-
Fix for a performance regression in parsing and reading parse data (#274).
-
Fix
switchsupport for packages, which was broken due to a bug in how parse data is stored in packages. -
Improve behavior of
switchcoverage, it now supports default values and fall through properly. -
Add
-pflag to gcov command to preserve file paths. Fixes a bug where gcov output didn't get reported when multiple compiled source files had the same name (#271, @patperry)
- The covr license has been changed to GPL-3.
- Set environment variable
R_COVR=truewhen covr is running (#236, #268). - Made the gather-and-merge-results step at the end of package_coverage() more memory efficient (#226, @HenrikBengtsson).
- Support code coverage with icc (#247, @QinWang).
filter_not_package_files()now works if a source reference does not have a filename (#254, @hughjonesd).- Fix test broken with xml2 v1.1.0
- Filter out non-local filenames from results (#237).
- Vignette rewrite / improvements (#229, @CSJCampbell).
- Fix code that returns
structure(NULL, *)which is deprecated in R 3.4.0 (#260, #261, @renkun-ken).
- Fix test broken with DT 0.2
- Fix tests broken with updated htmlwidgets
- Change report tab title based on filename (Chen Liang).
- Add support for cobertura XML output (@wligtenberg).
- Add mcparallel support by patching
mcparallel:::mcexit()automatically for packages using parallel (#195, @kforner).
- Add support for GitLab CI (#190, @enbrown).
- Update exclusion documentation to include line_exclusions and function exclusions (#191).
- Support coverage of R6 methods (#174).
- Explicitly set default packages (including methods) (#183, #180)
- Set R_LIBS and R_LIBS_SITE as well as R_LIBS_USER (#188).
- Automatically exclude RcppExport files (#170).
- Memoised and Vectorized functions now able to be tracked.
- Support for filtering by function as well as line.
- Now tracks coverage for RC methods
- Rewrote loading and saving to support parallel code and tests including
quit()calls. - Made passing code to
function_coverage()andpackage_coverage()not use non-standard evaluation. NULLstatements are analyzed for coverage (#156, @krlmlr).- Finer coverage analysis for brace-less
if,whileandforstatements (#154, @krlmlr). - Run any combination of coverage types (#104, #133)
- Remove inconsistencies in line counts between shiny app and services (#129)
- Include header files in gcov output (#112)
- Add support for C++11 (#131)
- Always clean gcov files even on failure (#108)
- zero_coverage works with RStudio markers (#119)
- Remove the devtools dependency
- Set
.libPaths()in subprocess to match those in calling process (#140, #147). - Move devtools dependency to suggests, only needed on windows
- move htmltools to suggests
- Initial Release