在RStudio中运行testthat测试时如何启用更多CPU子进程?
解决testthat并行测试增加CPU数量的方法
针对你在RStudio「Build」面板运行testthat v3并行测试时无法增加CPU数量的问题,以下是几个可行的方案:
修正环境变量设置位置与变量名
你之前在测试辅助文件中设置Sys.setenv(TESTTHAT_NCPUS =4)未生效,原因有两个:一是变量名应为TESTTHAT_CPUS(不是TESTTHAT_NCPUS);二是测试辅助文件是在子进程中加载的,主进程启动并行池时已经读取了环境变量,子进程的设置无法影响主进程配置。
正确操作步骤:- 打开RStudio的「Tools」→「Project Options」→「Build Tools」
- 在「Environment」区域点击「Add」,添加环境变量
TESTTHAT_CPUS=4(替换为你需要的CPU数) - 保存设置后重启RStudio,再通过Build面板运行测试即可生效
通过.Rprofile设置全局选项
在你的R包项目根目录创建或修改.Rprofile文件,添加以下任意一行代码:# 方法1:设置Ncpus选项 options(Ncpus = 4) # 方法2:设置TESTTHAT_CPUS环境变量 Sys.setenv(TESTTHAT_CPUS = 4)保存文件后重启RStudio,Build面板运行测试时会自动读取该配置。
直接调用测试函数指定CPU数
若不想修改全局配置,可在R控制台直接运行测试命令并指定CPU数量:devtools::test(parallel = TRUE, ncpus = 4)若想在Build面板使用这个命令,可在「Project Options」→「Build Tools」中修改「Test command」为上述代码。
注意:testthat会自动限制进程数不超过测试文件总数,因此即使设置了4个CPU,若测试文件只有3份,实际只会启动3个进程。
内容的提问来源于stack exchange,提问作者Dan Chaltiel
相关产品推荐
相关产品推荐

