Drake 工作流自定义函数单元测试的最佳实践
Best practices for unit tests on custom functions for a drake workflow
Drake 工作流可以在其 R 目录中存储多个自定义函数。为自定义函数开发单元测试是有意义的。 运行 testthat 在 RStudio 中(或从命令行)对 R 包进行单元测试时,有完善的工具和结构。
- 但是开发和 运行 测试 drake 工作流程中自定义函数的单元测试的最佳实践是什么?
任何指向资源或示例的指针都将不胜感激。谢谢!
当 drake
出现时,单元测试的最佳实践并没有太大变化。以下是主要考虑因素。
- 如果您正在使用
drake
,您可能会在整个管道中处理烦人的长 运行 次。因此,一项挑战是构建不会永远耗时的测试。我建议在小数据集、少量迭代或任何可以在合理时间内完成测试的方法上调用函数。您可以 运行 通过这种方式进行很多基本检查。为了更彻底地验证来自您的函数的答案,您可以 运行 对 drake
管道的结果进行一组额外的检查。
- 如果您使用的是
testthat
,您可能会将函数安排在类似包的结构中,甚至是成熟的包中,甚至可以使用 devtools::load_all()
加载函数或 library(yourPackage)
。如果您以这种方式加载函数而不是单独获取函数脚本,请务必在 make()
之前调用 expose_imports()
,以便 drake
可以分析函数的依赖关系。
Drake 工作流可以在其 R 目录中存储多个自定义函数。为自定义函数开发单元测试是有意义的。 运行 testthat 在 RStudio 中(或从命令行)对 R 包进行单元测试时,有完善的工具和结构。
- 但是开发和 运行 测试 drake 工作流程中自定义函数的单元测试的最佳实践是什么?
任何指向资源或示例的指针都将不胜感激。谢谢!
当 drake
出现时,单元测试的最佳实践并没有太大变化。以下是主要考虑因素。
- 如果您正在使用
drake
,您可能会在整个管道中处理烦人的长 运行 次。因此,一项挑战是构建不会永远耗时的测试。我建议在小数据集、少量迭代或任何可以在合理时间内完成测试的方法上调用函数。您可以 运行 通过这种方式进行很多基本检查。为了更彻底地验证来自您的函数的答案,您可以 运行 对drake
管道的结果进行一组额外的检查。 - 如果您使用的是
testthat
,您可能会将函数安排在类似包的结构中,甚至是成熟的包中,甚至可以使用devtools::load_all()
加载函数或library(yourPackage)
。如果您以这种方式加载函数而不是单独获取函数脚本,请务必在make()
之前调用expose_imports()
,以便drake
可以分析函数的依赖关系。