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_tests
option. When TRUE
, 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 when coverage
is not the output from package_coverage()
and token
is 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 variable R_TESTS
to the tests-startup.R file like R CMD check does (#420)
report()
now provides a more detailed error message if the DT
and htmltools
dependencies are not installed (#500).
Fix parse_gcov
bug 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()
and coveralls()
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()
and function_coverage()
now set R_COVR=true
, to be consistent with package_coverage()
(#407)
{
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. Using if (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)codecov
now looks codecov.yml
for token if CODECOV_TOKEN
envvar 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 option pre_clean
, set to FALSE
to disable cleaning of existing objects before running package_coverage()
(@jpritikin, #375)
shine()
has been removed. Instead use report()
.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 for devtools::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 of report()
.Add support for .covrignore
files (#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 switch
support for packages, which was broken due to a bug in how parse data is stored in packages.
Improve behavior of switch
coverage, it now supports default values and fall through properly.
Add -p
flag 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)
R_COVR=true
when covr is running (#236, #268).filter_not_package_files()
now works if a source reference does not have a filename (#254, @hughjonesd).structure(NULL, *)
which is deprecated in R 3.4.0 (#260, #261, @renkun-ken).mcparallel:::mcexit()
automatically for packages using parallel (#195, @kforner).quit()
calls.function_coverage()
and package_coverage()
not use non-standard evaluation.NULL
statements are analyzed for coverage (#156, @krlmlr).if
, while
and for
statements (#154, @krlmlr)..libPaths()
in subprocess to match those in calling process (#140, #147).