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))
.
您可以采用任何一种方式,甚至可以将两者结合起来。但是你不能从测试中调用包而不声明它们。
我正在尝试 运行 使用 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))
.
您可以采用任何一种方式,甚至可以将两者结合起来。但是你不能从测试中调用包而不声明它们。