2016-04-26 55 views
0

我正在使用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) 
}) 
+0

用'getwd()'檢查你的工作目錄,並確保你正在加載的'.Rdata'文件在目錄中(使用'list.files()'來檢查)。另外,嘗試函數加載爲'load(file ='extractedMarkerData.Rdata')' –

+0

我已經嘗試添加這些來診斷travis的檢查,並且看起來這些文件*在工作目錄中是*,但對於某些原因R無法訪問它們(再次,當我在我的計算機上運行測試時,這種方式工作正常,但當它們在特拉維斯上運行時不起作用)。這裏是[travis日誌](https://travis-ci.org/jonkeane/mocapGrip/builds/125995784#L1567-L1580) –

回答

0

而且它的確是一些簡單的:不區分大小寫OS X正默默地無視我有錯的情況下(.Rdata與.RData)和Ubuntu的系統運行travis是區分大小寫的,所以當搜索提取的MarkerData.RData時,找到提取的MarkerData.Rdata不起作用(因爲它不應該工作,因爲Ubuntu是區分大小寫的)。修好了,現在一切都很好。

相關問題