r testthat и covr используют в непакетной библиотеке

Я хотел бы иметь возможность использовать testthat а также covr в проекте, который не является пакетом r. На самом деле не использует никаких сторонних услуг. Просто коллекция исходных файлов plain-old-r

Я изо всех сил пытаюсь выяснить, возможно ли это, и если да, то инструкции о том, как установить это, подняты.

То, что я нашел, предполагает, что вы пишете пакет r. Мне нравится избегать этих накладных расходов.

Предшествующий уровень техники:

  1. https://www.rstudio.com/resources/webinars/covr-bringing-test-coverage-to-r/
  2. https://walczak.org/2017/06/how-to-add-code-coverage-codecov-to-your-r-package/

1 ответ

Решение

Это должно быть возможно без проблем.

Во-первых: у меня есть один файл с кодом, который должен быть проверен, с именем code.R:

f1 <- function(n, ...) {
    rnorm(n = n, ...)
}

Второе: тогда у меня есть файл с тестами с именем tests.R:

source("code.R")

test_that("Random tests", {
    tmp1 <- f1(10)
    expect_type(tmp1, "double")
    expect_equal(length(tmp1), 10)
})

Третье: и тогда вы можете запускать тесты, а также покрытие, как это:

library(testthat)
library(covr)

test_file("tests.R")

res <- file_coverage("code.R", "tests.R")
res
report(res)

Несколько файлов не должно быть проблем.

Другие вопросы по тегам