使用devtools::check()检测R包时遭遇OpenSSL加载错误
问题:R包测试时OpenSSL共享库加载失败
开发的R包中创建新用户的功能可正常运行,但执行devtools::test()和devtools::check()时出现以下错误:
Message: OpenSSL error in win32_load: could not load the shared library Class: simpleError/error/condition Backtrace: 1. testthat::expect_error(...) at test-new_user.R:2:4 7. newUser::new_user(...) 12. bcrypt::hashpw(password) at newUser/R/classUser.R:29:4 13. bcrypt::gensalt() 14. openssl::rand_bytes(16)
相关代码示例
R/classUser.R
setClass("User", slots = c( user_id = "character", name = "character", email = "character", password = "character" )) setMethod( f = "initialize", signature = "User", definition = function(.Object, user_id, name, email, password){ .Object@user_id <- user_id .Object@name <- name .Object@email <- email .Object@password <- password return(.Object) } )
R/new_user.R
#' new User #' @importFrom uuid UUIDgenerate #' @import bcrypt #' @import methods #' @param name character. name chosen by the user #' @param email character. email of the user, must not already exist in database #' @param password character. password chosen by the user #' #' @return User object #' @export new_user <- function(name, email, password){ user <- new(Class = "User", user_id = uuid::UUIDgenerate(), name = name, email = email, password = bcrypt::hashpw(password)) return(user) }
tests/testthat/test-new_user.R
test_that("new user", { expect_error( Aurelie <- new_user( name = "Aurélie", email = "Aurelie@tryharder", password = "Str0ngP4ssword++" ), NA ) })
已尝试的解决方法
- 将
openssl添加至DESCRIPTION的Suggests字段 - 在设备上安装OpenSSL
- 设置
Sys.setenv("R_TESTS" = "")
以上方法均未解决问题,恳请帮忙分析问题原因并提供解决方案。
内容的提问来源于stack exchange,提问作者Aurélie Fréchet
相关产品推荐
相关产品推荐

