Использование covr в R дает другой результат от package_coverage и file_coverage.
Я использую новый пакет. Некоторые функции, кажется, пропускаютсяpackage_coverage()
, но когда я бегуfile_coverage()
, я получаю более высокий результат покрытия. Почему это так?
Вотcovr
код:
r$> covr::package_coverage()
rOPTRAM Coverage: 86.86%
R/utilities.R: 67.14%
R/optram_calculate_str.R: 90.91%
R/optram_ndvi_str.R: 92.68%
R/optram_wetdry_coefficients.R: 94.17%
R/optram_soilmoisture.R: 94.74%
тогда как при непосредственном выполнении функций:
r$> covr::file_coverage("R/utilities.R", "tests/testthat/test-utilities.R")
Test passed
Test passed
Test passed
.... # More lines with expect errors, etc
Test passed
Coverage: 80.00%
R/utilities.R: 80.00%
80% охват против 67%?? Когда я ввожу функцию вutilities.R
звонок вin_covr()
, он действительно возвращает FALSE. Почему эта функция может быть пропущена?
Это тест:
test_that("SCIHUB available", {
expect_true(check_scihub_access())
}
)
И вот функция, которая пропускается:
check_scihub_access <- function() {
# Avoid "no visible binding for global variable" NOTE
is_online <- site <- NULL
# First check for internet connection
site <- "http://scihub.copernicus.eu"
#message("In covr 1:", covr::in_covr()) # prints "FALSE"
is_online <- tryCatch({
readLines(site, n=1)
TRUE},
error = {function(e) {
message("No internet connection to SCIHUB.", "\n",
"Downloading data is not currently possible")
FALSE}
})
if (is_online) {
#message("In covr 2:", covr::in_covr()) # prints "FALSE
# Is sen2r installed?
if (system.file(package='sen2r') == "") {
message("This function requires the `sen2r` package.", "\n",
"Please install that package first before running function")
return(FALSE)
}
# Check sen2r version
sen2r_version <- utils::packageVersion("sen2r")
version_ok <- package_version(sen2r_version) > '1.5.0'
if (!version_ok) {
message("Version of sen2r pacakge: ", sen2r_version, " is too old. \n",
"Please update to version > 1.5")
return(FALSE)
}
return(TRUE)
} else {
return(FALSE)
}
}
Спасибо