我正在使用testthat
包與我正在開發的R包一起運行單元測試。我遇到了一個奇怪的情況,我無法弄清楚我做錯了什麼。我試圖加載一些測試數據(存儲在數據框中)和一些預先計算的答案(再次存儲在數據框中)來測試一些函數並比較結果。我已經將兩組數據都保存爲.Rdata文件(在tests/testthat /目錄中),並且在我運行測試前加載它們。load(file.path('filename.RData'))
在travis的testthat測試中使用load()加載.RData文件中的數據
當我在我的計算機上運行測試時,測試運行良好。但是,當他們在特拉維斯跑,我得到的錯誤:
> 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能夠加載這些文件的任何想法?
這裏是違規的內容testthat文件:
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)
})
用'getwd()'檢查你的工作目錄,並確保你正在加載的'.Rdata'文件在目錄中(使用'list.files()'來檢查)。另外,嘗試函數加載爲'load(file ='extractedMarkerData.Rdata')' –
我已經嘗試添加這些來診斷travis的檢查,並且看起來這些文件*在工作目錄中是*,但對於某些原因R無法訪問它們(再次,當我在我的計算機上運行測試時,這種方式工作正常,但當它們在特拉維斯上運行時不起作用)。這裏是[travis日誌](https://travis-ci.org/jonkeane/mocapGrip/builds/125995784#L1567-L1580) –