运行 使用没有包的 testthat 进行单元测试
Run unit tests with testthat without package
我有一个闪亮的应用程序,它使用了 4 个函数。我想测试这些功能,但它不是一个包。我应该如何构建我的代码?并在没有 devtools 的情况下执行这些测试?
如果你有几个没有包结构的函数,最好手动编写单个测试文件(因此使用一些简单的 if/error 捕获系统),然后用 Rscript test_file1.R
调用。
如果您开始使用包格式(建议进一步 'safe' 开发)并且您仍然不想使用 testthat
,我建议您关注此博客 post: here
您可以使用 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()
引用定义函数的文件。
我有一个闪亮的应用程序,它使用了 4 个函数。我想测试这些功能,但它不是一个包。我应该如何构建我的代码?并在没有 devtools 的情况下执行这些测试?
如果你有几个没有包结构的函数,最好手动编写单个测试文件(因此使用一些简单的 if/error 捕获系统),然后用 Rscript test_file1.R
调用。
如果您开始使用包格式(建议进一步 'safe' 开发)并且您仍然不想使用 testthat
,我建议您关注此博客 post: here
您可以使用 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()
引用定义函数的文件。