当我使用一个不是包的R项目时,我试图找出如何使用一些devtools功能,如testthat,roxygen等。在“R Packages(2 e)”一书中,有很好的例子可以说明如何使用所有这些功能。但是当我试图在一个不是包的项目中使用这些功能时,我会收到错误消息,例如:
test()package_file()
中的错误:!找不到包根目录。n是否在包内?请运行rlang::last_trace()
查看错误发生的位置。
我在一个项目中工作,我没有将其设置为一个包。usethis包文档明确提到了这个选项,但我找不到任何实际工作的例子。我能找到的所有文档都涉及包开发。
1条答案
按热度按时间gopyfrb31#
如果你只是设置一个包,这可能是有意义的-它使生活更容易,因为
roxygen2
和testthat
大多数都是设计来处理包的。如果你使用RStudio,你也可以轻松地触发Built和Check*-按钮来创建roxygen文档或检查你的包。正如Karolis在评论中提到的,一个R包只不过是有一个DESCRIPTION文件和一个R文件夹,其中存储了您的R文件。(当您想要进行测试时,还有一个文件夹tests**)
但是如果你不想设置一个包,你当然也可以在一个普通的项目中使用testthat。
只需编写一个测试并将其存储在.R文件中。
例如,把这个测试(当然用更有用的东西替换它)放在R文件
my_test.R
中,假设它在一个名为tests
的文件夹中。然后你可以调用
test_file()
你会得到这样的输出:
[失败0|警告0|跳过0|通过1 ]
如果您有多个包含测试的文件,则只需调用
test_dir()
来检查整个文件夹因此,要检查
tests
文件夹中的所有文件,您可以这样写:注意,在你的测试文件中,你必须先
source
你的代码,否则testthat没有加载你定义的函数。使用一个包你不必这样做。因此,您必须源代码
my_code.R
,以便加载my_add_function
函数,并使用testthat对其进行测试。(正如在包中提到的那样,您不需要源代码内容)