【问题标题】:R testthat: use external package only in test file - not in DESCRIPTIONR testthat:仅在测试文件中使用外部包 - 而不是在说明中
【发布时间】:2021-02-23 14:11:46
【问题描述】:

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

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

任何想法如何在测试文件中包含外部包而不是在说明中?

谢谢!

【问题讨论】:

    标签: r testthat


    【解决方案1】:

    我认为你描述了一个非常标准的 Suggests 用法。

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

    • 您想使用 CI 测试某些东西,在本例中是 GHA。没事儿。因为您控制代码的执行,您可以将您的代码从测试运行程序移到,例如,inst/examples 并显式调用它。这样,“是使用未声明代码的包”的标准检查通过 inst/examples 未检查

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

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

    【讨论】:

    • 非常感谢 Dirk,正是我想要的!
    猜你喜欢
    • 2014-09-09
    • 2013-04-15
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多