r-创建CRAN包的简短示例



我目前正在构建一个包,希望上传到CRAN。我在帮助文档中包含的示例目前需要一些时间来检查(总共约12分钟),我知道在尝试加载CRAN时可能会出现问题。虽然我可以让我的示例运行得更快,但我担心这会降低它们对阅读帮助文件的用户的意义。有没有办法在帮助文档中包含一些CRAN会检查但用户看不到的快速(但意义不大)示例?

我正在使用devtools和roxygen2来编写我的文档,所以如果可能的话,使用这些工具得到答案会很好。

谢谢你的帮助。

听起来你想做一些单元测试,这在处理更复杂的包时是一个非常好的主意。查看testthat包(文章,来源)。

确保软件包正确运行所需的简短且纯粹的技术示例(但与最终用户不太相关)将进入单独的文件夹myPackage/tests。这些将在每次构建包时自动运行,但不会包含在文档文件中。

建议的解决方案是制作一个名为myPackage/tests/run-all.R:的文件

library(testthat)
library(myPackage)
test_package("myPackage")

然后将所有测试代码放入myPackage/tests/testthat中,例如myPackage/tests/testthat/foo.R:

context("Basic operation")
test_that("Default execution", {
    a <- 4
    b <- 34
    expect_equal(myFunction(a, b), a + b)
})

将测试放入myPackage/tests/testthat而不是直接放入myPackage/tests的原因是myPackage/tests/testthat将包含在最终包中(尽管在不同的文件夹中),这允许用户也运行测试。myPackage/tests不会复制到最终包中。

请参阅手册第2.1.1节example小节。您可以将更重的示例包含在dontrun中,它们将不会被检查。

如果唯一的问题是CRAN加载,则应该使用donttest{}命令来阻止在CRAN上运行示例。请注意,当用户键入example(xx)

时,示例仍将运行

相关内容

  • 没有找到相关文章

最新更新