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

R testthat: use external package only in test file - not in DESCRIPTION

我正在尝试 运行 使用 GitHub 操作的 testthat 脚本。

我想测试我的函数的一项功能,允许它与(许多)外部包结合使用。现在我想为 R CMD Check 测试这些外部包,但我不想一般地加载外部包(即将它们放入描述中)——毕竟,大多数人不会使用这些外部包。

任何想法如何只在测试文件中包含外部包而不是在描述中?

谢谢!

我认为你描述了 Suggests.

的一个非常标准的用法

我看到两个相关但可以分开的问题:

  • 您想使用 CI 测试某些内容,在本例中为 GHA。那也行。因为您控制代码的执行,所以您 可以 将您的代码从测试运行程序移动到 inst/examples 并显式调用它。这样 'is the package using undeclared code' 的标准检查就通过了,因为 inst/examples 没有被检查

  • 您不想强迫其他人加载这些包。这也很好,为此我们有 Suggests:!阅读编写 R 扩展的第 1.1 节,了解所有详细语义。 如果你的包通过测试调用其他包,每个R CMD check都会触及这个(和外部包)所以它们必须声明。但是您已经知道只有“某些”人会“有时”想要使用此功能:即 恰好 Suggests: 所做的事情,并且您将使用括起来 if (requireNamespace(pkgHere, quietly=TRUE)).

您可以采用任何一种方式,甚至可以将两者结合起来。但是你不能从测试中调用包而不声明它们。