使用不带包的testthat运行单元测试

时间:2017-08-09 10:09:21

标签: r testing shiny testthat

我有一个使用4个功能的闪亮应用程序。我想测试这些功能,但它不是一个包。我该如何构建我的代码?并在没有devtools的情况下执行这些测试?

2 个答案:

答案 0 :(得分:10)

您可以使用testthat::test_dir()testthat::test_file()执行测试。既不依赖于包中的代码,也不依赖于devtools,而只依赖testthat包。

关于如何构建代码的要求很少。 如果是我,我会创建一个tests目录并在那里添加我的测试脚本,看起来像这样:

|- my_shiny_app | |- app.R | |- tests | |- test_foo.R | |- test_bar.R

然后,您可以使用test_dir('tests')运行测试,假设您在my_shiny_app目录中。

您的测试脚本会有相同的structure they have for packages,但您可以使用library()来代替source()来代替您定义函数的文件。

答案 1 :(得分:0)

如果没有包结构的函数很少,最好手动编写单个测试文件(因此使用一些简单的if /错误捕获系统),并使用Rscript test_file1.R调用。

如果您开始使用包格式(这​​对于进一步'安全'开发是可取的)并且您仍然不想使用testthat,我建议您关注此博客帖子:{{3 }}