rhino icon indicating copy to clipboard operation
rhino copied to clipboard

Test coverage using covr

Open radbasa opened this issue 2 years ago • 5 comments

Changes

Two functions.

  • covr_r()
  • covr_report()

Requires Appsilon/covr@klmr-box-support

Take Note

Need some advice how to add this to the documentation

With box an exported variable and a module can have the same name. For example,

# example_name.R

#' @export
example_name <- "example string"      # variable
# test-example_name.R
box::use(
  app/example_name[example_name]
)

testthat("", {
  example_name
})

With testthat this is not a problem. But, this will throw a test fail inside covr. Inside a covr run, the call to example_name returns the box module, not the variable object. A solution is to use aliases in the unit test:

# test-example_name.R
box::use(
  app/example_name[en = example_name]
)

testthat("", {
  en
})

Closes #99

How to use

Inside a rhino app

  1. Remove existing installed covr package.
  2. Install Appsilon version of covr, devtools::install_github("Appsilon/covr@klmr-box-support") or remotes::install_github("Appsilon/covr@klmr-box-support")
  3. rhino::covr_r() to run a coverage test
  4. rhino::covr_report() to produce an HTML report

radbasa avatar Jan 25 '23 06:01 radbasa

Codecov Report

Merging #431 (d2daa72) into main (6696e81) will decrease coverage by 0.69%. The diff coverage is 0.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@            Coverage Diff             @@
##             main     #431      +/-   ##
==========================================
- Coverage   11.90%   11.21%   -0.69%     
==========================================
  Files           8        8              
  Lines         294      312      +18     
==========================================
  Hits           35       35              
- Misses        259      277      +18     
Impacted Files Coverage Δ
R/tools.R 0.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov-commenter avatar Jan 25 '23 06:01 codecov-commenter

Since this PR depends on the change done to covr, we need to wait for it to be accepted and included in CRAN release.

jakubnowicki avatar Jan 25 '23 07:01 jakubnowicki

Added parameters to rhino::covr_r()

#' @param test_files Character vector of test files with code to test the functions. Defaults to
#'   all test files in `tests/testthat` with the `test-<name>.R` filename pattern.
#' @param line_exclusions passed to `covr::file_coverage`
#' @param function_exclusions passed to `covr::file_coverage`

radbasa avatar Jan 25 '23 10:01 radbasa

@Johan-rosa Any comments on the covr-related functions? Message in private if necessary.

radbasa avatar Feb 08 '24 04:02 radbasa

@Johan-rosa Any comments on the covr-related functions? Message in private if necessary.

We're using these changes and everything is working as expected. Great job!

Johan-rosa avatar Feb 19 '24 19:02 Johan-rosa