auto_test выдает ошибку репортера в тесте

Я пытаюсь заставить себя проводить больше модульного тестирования в некоторых проектах по анализу данных, где я действительно не хочу разрабатывать пакет. Итак, я играл с testthat R пакет. у меня есть code папка и внутри это src и test папка. в src папка у меня есть файл add.R который имеет эту функцию:

add <- function(x,y){
    x+y
}

в test папка у меня есть файл test-add.R который содержит это:

library(testthat)

test_that("adding numbers", {
    expect_equal(add(2,3), 5)
    expect_equal(add(5,5), 10)
})

Следующее работает отлично...

> source('code/src/add.R')
> test_file('code/test/test-add.R')

Но я хотел бы иметь возможность использовать auto_test функция с тех пор, как проект растет source/test_file станет утомительным. Но когда я пытаюсь auto_test Я понял это...

> auto_test('code/src', 'code/test')
Error in find_reporter(reporter) : attempt to apply non-function

Я уверен, что упускаю что-то простое, но что?

> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.1 (El Capitan)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] testthat_0.11.0.9000 knitr_1.12.3        

loaded via a namespace (and not attached):
[1] lazyeval_0.1.10      R6_2.1.2             tools_3.2.3         
[4] withr_1.0.1          memoise_1.0.0        crayon_1.3.1        
[7] digest_0.6.9         devtools_1.10.0.9000

1 ответ

Решение

Кажется, это проблема testthat версия 0.11.0.9000. Если я устанавливаю эту версию с github, я получаю то же сообщение об ошибке, что и вы:

auto_test('code/src', 'code/test')
## Error in find_reporter(reporter) : attempt to apply non-function

Но с версией 0.11.0, которую можно установить из CRAN, ваш пример работает нормально:

auto_test('code/src', 'code/test')
## ..
## DONE
Другие вопросы по тегам