[英]R testthat: use external package only in test file - not in DESCRIPTION
我正在尝试使用 GitHub 操作运行testthat
脚本。
我想测试我的函数的一个功能,它允许它与(许多)外部包结合使用。 现在我想为R CMD Check
测试这些外部包,但我一般不想加载外部包(即把它们放在描述中)——毕竟,大多数人不会使用这些外部包。
任何想法如何只在测试文件中包含一个外部包而不是在描述中?
谢谢!
我认为您描述了Suggests
的非常标准的用法。
我看到两个相关但可分离的问题:
您想使用 CI 测试某些内容,在本例中为 GHA。 那没关系。 因为您控制代码的执行,所以您可以将您的代码从测试运行器移动到inst/examples
并显式调用它。 这样,“是否使用未声明代码的包”的标准检查作为inst/examples
未检查通过
您不想强迫其他人必须加载这些包。 这也很好,我们有Suggests:
为此! 阅读有关所有详细语义的“编写 R 扩展”的第 1.1 节。 如果您的包通过测试调用其他包,则每个R CMD check
涉及此(以及外部包),因此必须声明它们。 但是您已经知道只有“某些”人会想要在“某些时候”使用这个:这正是Suggests:
所做的,并且您将使用if (requireNamespace(pkgHere, quietly=TRUE))
起来if (requireNamespace(pkgHere, quietly=TRUE))
。
您可以采用任何一种方式,甚至可以将两者结合起来。 但是你不能从测试中调用包而不声明它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.