R testthat:仅在测试文件中使用外部软件包-不能在description中使用

问题描述

我正在尝试使用GitHub Actions运行testthat脚本。

我想测试一下我的功能功能,该功能可以将其与(许多)外部软件包结合使用。现在,我想测试R CMD Check的这些外部软件包,但我不想一般地加载这些外部软件包(即,将它们放入Description中)-毕竟,大多数人不会使用这些外部软件包。>

有什么想法如何仅在测试文件包括外部软件包,而不在DESCRIPTION中包括外部软件包?

谢谢!

解决方法

我认为您描述的是Suggests的非常标准的用法。

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

  • 您想使用CI(在本例中为GHA)进行测试。那样就好。因为您控制代码的执行,所以您可以 将代码从测试运行程序移至inst/examples并进行显式调用。这样,由于未检查inst/examples,所以通过了“是否使用未声明的代码包装”的标准检查

  • 您不想强迫其他人加载这些软件包。那也很好,为此,我们有Suggests:!阅读关于编写R扩展的第1.1节,了解所有详细的语义。 如果您的程序包通过测试调用其他程序包,则每个R CMD check都会触及此程序包(以及外部程序包),因此必须声明它们。但是您已经知道,只有“一些”人会愿意使用“某些时间”:这就是精确 Suggests:的作用,并且您将{{1}用括号括起来}。

您可以选择任意一种方式,甚至可以将两者结合使用。但是您不能从测试中调用包,也不能声明它们。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...