我正在开发一个R包,它封装了rmongodb包并创建了一个开发者友好的接口,用于与MongoDB一起工作。该包在内部使用proto。
我想通过名为MongoDB的proto对象(一个环境)导出单个工厂方法,其定义如下:
在使用RStudio和devtools进行开发以及本地测试时,这似乎不是一个问题。然而,我遇到了几个问题:
- devtools::check() 坚持要在我的NAMESPACE文件中放置一个import(MongoDB),这会导致R CMD check失败并显示“Namespace dependency not required: 'MongoDB'”。 - 当我删除此导入指令时,即使我手动添加export(MongoDB),R CMD check在运行我的testthat测试时也会失败,并显示“object 'MongoDB' not found”。但是,在RStudio中,devtools::test()可以正常工作。
从R包中导出环境(proto对象)的推荐方法是什么?
更新:
根据 Gabor 的建议,我确保
我想通过名为MongoDB的proto对象(一个环境)导出单个工厂方法,其定义如下:
MongoDB <- proto(
new = function(., ...) {
# Good stuff in here...
}
)
在使用RStudio和devtools进行开发以及本地测试时,这似乎不是一个问题。然而,我遇到了几个问题:
- devtools::check() 坚持要在我的NAMESPACE文件中放置一个import(MongoDB),这会导致R CMD check失败并显示“Namespace dependency not required: 'MongoDB'”。 - 当我删除此导入指令时,即使我手动添加export(MongoDB),R CMD check在运行我的testthat测试时也会失败,并显示“object 'MongoDB' not found”。但是,在RStudio中,devtools::test()可以正常工作。
从R包中导出环境(proto对象)的推荐方法是什么?
更新:
根据 Gabor 的建议,我确保
MongoDB.Rd
将 MongoDB
声明为数据(链接来源)。但在测试中仍然出现了 MongoDB
不可见的失败(测试使用 testthat
)。我的 DESCRIPTION
文件位于 此处,NAMESPACE
位于 此处。
RMongo
包,它使用Java驱动程序,并且具有比rmongodb
包更高级的接口。 - Stennie