auto_test在test

时间:2016-03-09 16:27:26

标签: r testthat

我试图强迫自己在一些我不想开发软件包的数据分析项目上进行更多单元测试。所以,我一直在玩testthat R套餐。我有一个code文件夹,里面是srctest文件夹。在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 个答案:

答案 0 :(得分:0)

这似乎是testthat版本0.11.0.9000的问题。如果我从github安装此版本,我会收到与您相同的错误消息:

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

但是对于可以从CRAN安装的0.11.0版本,您的示例运行良好:

auto_test('code/src', 'code/test')
## ..
## DONE