因此,我将我的包提交给CRAN,并且我对何时在\donttest或\dontrun中包装示例感到困惑。我有几个不同的案例:
返回数据帧等的plotly
的spreadsheets)
我已经计算出(1)我不应该用\donttest或\dontrun包装。对于(5),我应该用if(interactive()){}包装整个函数。
这仍然是2-5的情况下,我不确定我是否应该留下的例子包装或未包装。我猜情节是可以的,但不确定是否读/写文件。任何暗示或指引我到一个可以清楚解释的地方都是非常感激的。谢谢。
发布于 2021-08-26 10:04:16
一般来说,除非你需要这些标记,否则你应该避免使用这些标记。如果示例做了一些可能会失败的事情,您将需要其中之一,因为CRAN会将失败视为包中的一个错误。如果它们做了一些危险的事情(例如,在用户的主目录中创建文件、删除所创建的诱惑文件以外的文件、发送电子邮件等),您也会使用它们。
\dontrun标记较强。在过去,封装在其中的示例甚至不需要在语法上是正确的,尽管我认为这可能已经改变了。如果用户运行example()函数,他们将不会运行该代码。
在运行时间太长并违反CRAN的5秒限制的例子上使用\donttest。运行example()的用户将运行这些代码,但是包的基本测试不会运行,有时CRAN会测试\donttest代码,所以它必须工作。(通常,如果可以的话,最好给出一些运行速度快且没有达到5秒限制的示例。)
对于具体的示例,只要足够快就不需要任何包装,而且您可以安排所有文件系统更改都发生在R会话临时目录中。
https://stackoverflow.com/questions/68935126
复制相似问题