是否可以在Ruby on Rails中调试单元测试?

Pav*_*man 15 debugging unit-testing ruby-on-rails jruby

所以,我刚刚转到基于Ruby on Rails构建的新项目.我是新手,我还在学习它.我可以调试大多数应用程序代码,但似乎我无法调试单元测试代码和经过测试的代码.

当我在调试模式下运行单元测试时,我可以在单元测试类代码中设置断点,例如添加夹具的地方,但是断点在测试方法代码中不起作用,并且在测试代码中不起作用,在正常情况下它们在正常情况下工作流程.团队中的其他人都使用print语句进行单元测试调试.

那么,甚至可以在rails中调试单元测试代码吗?

我们正在使用jruby 1.3.1,rails-2.3.1并且我使用IntelliJ IDEA进行调试,如果我必须切换到eclipse或netbeans,我也没关系.

编辑:实际上,"不,这是不可能的"也是一个有用的答案,如果你知道它是如此.至少我会停止浪费时间

Mar*_*ira 28

对的,这是可能的.

首先,您必须安装ruby-debug.

sudo gem install ruby​​-debug

然后你写

调试器

在您希望开始调试的行之前.

下一步:按照正常的方式运行单元测试.

当ruby到达包含调试器指令的行时,它将停止并显示控制台提示符.

现在,您可以像使用gdb一样进行调试.

这个链接以一种非常好的方式解释它:http://blog.nanorails.com/articles/2006/07/14/a-better-rails-debugger-ruby-debug

我希望这个通知对你有用.

  • 此外,一旦进入调试器,输入`irb`进入`script/console`类型环境.这可以帮助您找出测试出错的地方. (4认同)

Kos*_*sis 8

作为(后期)更新,您还可以使用针对 Ruby 2 调试的byebug

默认情况下,它也包含在Gemfile任何新 Rails 项目附带的 中,并且在Debugging Rails Applications Guide 中还有一个很好的教程。

你可以插入

byebug
Run Code Online (Sandbox Code Playgroud)

测试文件中的任何位置,然后像往常一样运行测试。