【问题标题】:Is it possible to debug unit tests in Ruby on Rails?是否可以在 Ruby on Rails 中调试单元测试?
【发布时间】:2015-08-25 17:13:33
【问题描述】:

所以,我刚搬到基于 Ruby on Rails 的新项目。我是新手,我还在学习它。我可以调试大部分应用程序代码,但似乎无法调试单元测试代码和被测试的代码。

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

那么,是否可以在 rails 中调试单元测试代码?

我们使用的是 jruby 1.3.1,rails-2.3.1,我使用 IntelliJ IDEA 进行调试,如果我必须切换到 eclipse 或 netbeans 也可以。

编辑:实际上,“不,这不可能”也是一个有用的答案,如果你知道的话。至少我不会再浪费时间了

【问题讨论】:

  • 如果在代码中放置debugger 语句,即使在单元测试中运行,它也会中断调试器,不是吗?
  • @calmh - 是的,谢谢,它有效

标签: ruby-on-rails unit-testing debugging jruby


【解决方案1】:

是的,有可能。

首先你必须安装 ruby​​-debug。

sudo gem install ruby​​-debug

那你写

调试器

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

下一步:像往常一样运行单元测试。

当 ruby​​ 到达包含 debugger 指令的行时,它将停止并向您显示控制台提示。

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

这个链接很好地解释了它:http://blog.nanorails.com/articles/2006/07/14/a-better-rails-debugger-ruby-debug

我希望这些信息对你有用。

【讨论】:

  • 另外,一旦你进入调试器,输入irb 进入script/console 类型环境。这可以帮助您找出测试出错的地方。
【解决方案2】:

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

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

你可以插入

byebug

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多