我通过testthat
使用单元测试来处理R中的许多简单函数,但是我有更复杂的函数,它们结合了简单的函数和业务逻辑。我想通过前后视图测试输入样本的累积影响。理想情况下,我希望针对各种候选更改执行此操作。
目前我是
source
新功能副本source
不同的功能副本这已经证明是困难的,因为某些函数位于包命名空间中仍然运行函数的包版本,使得结果不可靠,除非我彻底重新加载函数的所有下游依赖项。此外,该机制管理复杂,难以重用。
是否有更好的策略来测试R包中的候选更改?
答案 0 :(得分:1)
我通过在包含修正函数的影响分析文件夹中创建子包来减少此问题。
然后我使用devtools::load_all
加载这些新功能版本。
然后,我可以通过命名空间访问原件来比较和对比结果,例如myoriginalpackage:::testfunction
同时使用testfunction
答案 1 :(得分:0)
也许您可以在每个版本上用“Rcmd build YourPackage”替换步骤5和7。然后用
install.packages("Path/To/MyPackage_1.1.tar.gz", type="source")
测试旧版本,然后用1.2替换1.1