我对来自Github存储库(托管在CRAN上的程序包)的代码编写和测试的最佳做法有一个一般性的问题,特别是对于非常大的功能(超过300行),这些功能不能独立于同一功能运行包。
到目前为止,我:
关于第4步,我只是想用新添加的更改来测试功能(实际上是通过调用它),甚至在运行任何单元测试之前。但是,此函数是庞大的包装器函数和较大的管道的一部分,并且需要特定于程序包的输入。因此,我的计划是加载此程序包“ package-dev”并通过此管道中的功能运行。
这是测试所贡献代码的正确方法吗?也就是说,加载您更改了代码的包的本地版本“ package-dev”,并从中运行功能?
我尝试使用devtools从不同的文件路径重新安装“ package-dev”,目的是测试功能,这些功能现在已经添加了我的代码片段,但是似乎有问题,可能是因为相同的原因名称。
devtools::install_local("path_to_package-dev")
library("package-dev")
.onLoad failed in loadNamespace() for 'rJava', details:
call: inDL(x, as.logical(local), as.logical(now), ...)
error: unable to load shared object 'path-to-rJava':
LoadLibrary failure: %1 is not a valid Win32 application.
人们通常会为第4步做什么?