在运行单元测试时,结果有问题,推测是代码中出现了异常,但 ut 框架将异常捕获了,然后直接显示测试 fail,其实我想看异常的信息。
请问如何做? 我用的是 minitest 框架
pry 是你的好朋友。
引入 Pry
#Gemfile group :test do gem 'pry' end
在你的测试文件中打断点
#user_test.rb test 'jesus loves you' do ... ... ... binding.pry ... ... end
就可以在断点那个位置愉快的 debug 了。
#1 楼 @xiaoronglv :plus1: @hgyxbll,要是你懒得引入 pry 的话,最原始的办法就是在怀疑有问题的地方 puts,另外如果用 Rubymine 这类的 IDE 的话,直接 debug 方式运行测试吧。
#2 楼 @qinfanpeng 如果测试包含一堆 log,puts 就被淹没在茫茫大海了。这种情况,可以使用系统通知插件,将报错的地方打出来。
#3 楼 @davidwei 有插件推荐吗?用 puts 是我一般先打印一行 "--------------------",然后接着打印自己要看的东西,另外用 asome print 打印的是彩色的,很好辨识的。
MinitTest 捕获异常之后也会打印调用栈,所以这是别的问题。
如果方便的话,贴个具体代码看看吧,描述的这么抽象,不好判断啊
#5 楼 @rei 发现确实是其他方面的问题,minitest 会打印调用栈的
#4 楼 @qinfanpeng 个人使用 Mac 系统,可以使用terminal-notifier. FYI: https://github.com/guard/guard/wiki/System-notifications
terminal-notifier