【问题标题】:Run unit tests with testthat without package使用没有包的 testthat 运行单元测试
【发布时间】:2018-01-17 03:57:54
【问题描述】:

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

【问题讨论】:

  • 为什么没有devtools
  • @drmariod : 我不能在我的 R 项目中使用它,不知道为什么以及如何在不创建包的情况下配置它...

标签: r testing shiny testthat


【解决方案1】:

您可以使用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() 引用定义函数的文件。

【讨论】:

    【解决方案2】:

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

    如果您开始改用包格式(这​​对于进一步“安全”开发是可取的)并且您仍然不想使用testthat,我建议您关注这篇博文:here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-22
      • 2023-04-07
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 2021-08-23
      • 2012-09-12
      • 2023-01-09
      相关资源
      最近更新 更多