R 我如何捕获testthat';s错误消息作为数据帧中结果的一部分?
我正在使用testthat包来运行测试,到目前为止,我对它非常满意。目前,我正在使用test_file()函数运行所有测试,并将其结果捕获为一个数据帧,然后进行一些额外的分析 然而,我想做的一件事是从数据帧本身的失败中捕获错误消息。我真的很喜欢其中一些信息的描述性,如果有更多的信息就好了。下面是我思考的一个例子。我想在R 我如何捕获testthat';s错误消息作为数据帧中结果的一部分?,r,testthat,R,Testthat,我正在使用testthat包来运行测试,到目前为止,我对它非常满意。目前,我正在使用test_file()函数运行所有测试,并将其结果捕获为一个数据帧,然后进行一些额外的分析 然而,我想做的一件事是从数据帧本身的失败中捕获错误消息。我真的很喜欢其中一些信息的描述性,如果有更多的信息就好了。下面是我思考的一个例子。我想在df中将“平均绝对差:1”消息作为一列捕获 > df <- test_file(f) 1 1. Failure(@testthat.R#4): insert me h
df
中将“平均绝对差:1”消息作为一列捕获
> df <- test_file(f)
1
1. Failure(@testthat.R#4): insert me here --------------------------------------
1 not equal to expected
Mean absolute difference: 1
> df
file context test nb failed error user system real
1 testthat.R insert me here 1 1 FALSE 0.004 0 0.004
>测向
文件上下文测试nb失败错误用户系统real
1 testthat.R在此处插入我11 FALSE 0.004 0.004
消息正在生成,在一个Reporter类中截获这些消息似乎不需要太长的时间,但是在浏览了文档和源代码之后,我认为没有内置功能
那么,用当前版本的testthat可以做到这一点吗
如果没有,需要采取什么措施来启用此功能?我愿意为项目做出贡献,但我不确定从哪里开始,因为我不太习惯R的OOP
谢谢你的意见 扁豆,这也超出了我的技能水平
我意识到这并不完美,但在重构Reporter时,这可能是一个解决办法
测试结果您好,谢谢您的回复。我本打算在github页面上摆出这个姿势,但首先想看看我是否遗漏了任何明显的东西。我确实调查了其他一些记者,但没有找到一个适合我需要的。我做了一些挖掘,发现List Reporter(生成df)确实捕获了失败消息,但在调用其get_summary方法时将其丢弃,因此理论上更改get_summary就足够了。这是好的,但仍然需要一些工作,使它做我想要的。谢谢你对sink()的建议,我会试试的。
test_results <- test_file("test-something.R", reporter = "list")
test_results <- test_file("test-something.R", reporter = "list")