我正在使用testthat
包来运行我正在开发的R包的单元测试。我遇到了一个奇怪的情况,我无法弄清楚我做错了什么。
我正在尝试加载一些测试数据(存储在数据帧中)和一些预先计算的答案(再次存储在数据帧中)来测试一些函数并比较结果。我已将两组数据保存为.Rdata文件(在tests / testthat /目录中),并且在我使用load(file.path('filename.RData'))
当我在计算机上运行测试时,测试运行正常。但是当他们在travis上运行时,我得到错误:
> test_check("mocapGrip")
Error in readChar(con, 5L, useBytes = TRUE) : cannot open the connection
Calls: test_check ... force -> source_file -> eval -> eval -> load -> readChar
In addition: Warning message:
In readChar(con, 5L, useBytes = TRUE) :
cannot open compressed file 'extractedMarkerData.Rdata', probable reason 'No such file or directory'
我肯定错过了一些非常简单的东西,但我已经尝试了所有显而易见的事情(从目录的开头指定相对路径等)。有没有人对如何让travis能够有任何想法加载这些文件?
以下是违规测试文件的内容:
library(mocapGrip)
context("distance calculationss")
load(file.path('extractedMarkerData.Rdata')) # markerDataHead
load(file.path('dist57.RData')) # dist57head
load(file.path('meanData.Rdata')) # meanDataHead
test_that("calculateDistances returns the correct distances", {
expect_equal(mocapGrip:::calculateDistances(markerDataHead, c(5,7)), dist57head)
})
test_that("meanOnAxis returns the correct distances", {
expect_equal(mocapGrip:::meanOnAxis(markerDataHead, c(0, 1, 2, 3, 4), axis ="Y"), meanDataHead)
})
答案 0 :(得分:1)
这确实很简单:不区分大小写的操作系统X默默地忽略了我的错误情况(.Rdata vs. .RData)和运行travis的ubuntu系统是区分大小写的,因此在搜索extractMarkerData.RData时,查找extractMarkerData.Rdata不起作用(因为它不应该工作,因为ubuntu区分大小写)。固定,一切都很好。