在运行
当进行测试时,我也经常迷失方向,不确定正在运行的代码是否已安装在系统库中(通过执行“Build&Reload”),还是从本地
没有找到进入调试器的方法,最终只能将测试代码粘贴到控制台中,并以非常临时的方式工作,基本上打乱了我的TDD习惯。因此,如果无法调用调试器,则需要任何建议的解决方法。
我正在OS X上以本地模式运行RStudio版本0.99.447,使用R 3.2.1。
编辑 - 我也想了解更多关于选项的背景信息,例如:“选项X永远不支持调试,因为它正在运行forked进程,请尝试使用另一个选项Y。”
更新 - 在这里没有得到任何回复之后,我还在https://support.rstudio.com/hc/communities/public/questions/204779797-Debugging-testthat-tests-in-RStudio 上提出了同样的问题(那里也没有得到任何回复)。
testthat
测试时,是否可以在RStudio中调用调试器?我尝试了各种设置(例如在设置中使用“如果可用,则使用devtools
包函数”,在“Build -> More”菜单中选择“Test Package”选项,通过在控制台中运行test()
,添加browser()
调用等),但都无法找到允许此操作的设置。当进行测试时,我也经常迷失方向,不确定正在运行的代码是否已安装在系统库中(通过执行“Build&Reload”),还是从本地
R
目录中直接运行。有时RStudio会抱怨无法设置断点,直到重建包(因此我认为前者),有时则不会(因此我认为后者)。不确定这个问题是否与我的主要问题密切相关。没有找到进入调试器的方法,最终只能将测试代码粘贴到控制台中,并以非常临时的方式工作,基本上打乱了我的TDD习惯。因此,如果无法调用调试器,则需要任何建议的解决方法。
我正在OS X上以本地模式运行RStudio版本0.99.447,使用R 3.2.1。
编辑 - 我也想了解更多关于选项的背景信息,例如:“选项X永远不支持调试,因为它正在运行forked进程,请尝试使用另一个选项Y。”
更新 - 在这里没有得到任何回复之后,我还在https://support.rstudio.com/hc/communities/public/questions/204779797-Debugging-testthat-tests-in-RStudio 上提出了同样的问题(那里也没有得到任何回复)。
dev_mode
是一个解决方案,但有时我也会忘记启用它,因为这是一个手动过程... - Ken Williamsbrowser()
方法——最近我的团队中有人(幸好不是我!)在代码中留下了一堆browser()
语句,结果这些语句被推到生产环境,造成了很糟糕的影响。现在我必须修改代码才能对其进行审查,这真是令人沮丧。不过,在测试文件中这样做并不像在代码文件中那么糟糕——由于某种原因,在使用devtools::test()
时,断点无法在测试文件中起作用,但在R/
目录下的代码文件中可以。 - Ken Williams