You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:20:42