使用testthat编写Shiny模块单元测试时执行usethis::use_test()报错
解决
usethis::use_test()路径错误的方案 - 先确认当前工作目录是否属于R项目或R包结构:
执行getwd()查看当前路径,检查该目录下是否有.Rproj文件(R项目的标识),或者具备标准R包的目录结构(比如包含R/、tests/文件夹和DESCRIPTION文件)。 - 未创建R项目的话,先创建项目:
可以通过RStudio菜单栏的File > New Project,选择Existing Directory并选中你的Shiny模块所在文件夹完成创建;也可以用代码usethis::create_project("你的目标文件夹路径")生成项目。 - 若已在项目中仍报错:
- 重启R会话,确保工作目录正确指向项目根目录,再重新运行
usethis::use_test()。 - 也可手动搭建测试结构:在项目根目录新建
tests/testthat文件夹,然后创建以test-开头的R脚本(如test-my_shiny_module.R),之后就能直接用testthat编写测试。
- 重启R会话,确保工作目录正确指向项目根目录,再重新运行
- Shiny模块测试实操提示:
用testthat::testServer()可以直接测试模块的服务器逻辑,示例代码如下:test_that("Shiny模块逻辑验证", { testServer(your_shiny_module, { # 模拟输入 session$setInputs(user_input = "测试值") # 验证输出 expect_equal(output$module_output, "预期结果") }) })
内容的提问来源于stack exchange,提问作者Maryam Momeni
相关产品推荐
相关产品推荐

