如何使用testthat和travis ci进行授权api调用?

时间:2017-12-02 22:24:36

标签: r travis-ci testthat

我正在研究一个访问某些API的R包。

access_api <- function(t,k) {
  if (missing(k)) {
    k <- Sys.getenv("KEY")
    if (identical(k, "")) {
      stop(".Renviron doesnt have that variable", call. = FALSE)
    }
    c <- paste0("www.someapi.com","k",k,"t",t)
  } else {
    c <- paste0("www.someapi.com","k",k",t",t)
   }
return (c)
}

在testthat目录中,我有一个测试函数,测试该函数是否符合我对返回数据结构的一些期望。

context("Check data structure")

test_api_call <- access_api(t)


test_that("Check data structure", {

  skip_on_cran() # test should only run on travis

  testthat::expect_true(row.names(test_api_call)[1] == "that")
  testthat::expect_true(row.names(test_api_call)[2] == "this")
  testthat::expect_true(row.names(test_api_call)[3] == "thatthis")

})

在当地,一切正常。然而,在travis上,我收到了我在access_api()'预定义的错误消息.Renviron没有该变量'

接下来,我按照travis文档创建了一些加密令牌,对应于我在Sys.getenv("KEY")中通过access_api()导入的“KEY”:

travis encrypt KEY="somekeyIhave" --add

该输出已添加到.travis.yml

language: R
sudo: false # required
cache: packages

env:
  matrix:
  - warnings_are_errors: true
  global:
    secure: "OutputOfTraviencrypt"

但错误仍然存​​在。我在这里遗漏了什么。不幸的是,到目前为止我在该主题上找到的信息并未指出任何具体方向。

0 个答案:

没有答案