繁体   English   中英

R testthat:仅在测试文件中使用外部包 - 不在描述中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM