2011-12-20 150 views
1

我正在为使用rails 3.1的应用程序编写一些自动化测试。我的一个测试失败了,在失败的时候,我希望能够跳进滑轨控制台并检查事情的状态。引发这个断言,很多对象被创建,状态被改变。在rails自动测试中,我怎样产生控制台?

测试套件运行结束后,测试数据库被清除。

我记得有一些方法可以在测试文件或类似的东西中插入一个断点,这会让我进入控制台。我做了大量的谷歌搜索,找不到它。

有人吗?

+0

我应该补充一点,我不是简单的指“轨道控制台测试”,我知道该怎么做。我特别想在我的主张失败的时候检查国家。 – 2011-12-20 04:34:22

回答

4

要求对您的Gemfile进行ruby-debug。

如果1.8:

gem 'ruby-debug'

如果1.9:

gem 'ruby-debug19', :require => 'ruby-debug'

请注意,如果你在1.9.3需要few tweaks

最后,在你想调试的地方放一个debugger声明,然后运行你的测试。它应该弹出一个控制台。正如Amadan所说,我还建议看一下pry

+0

呃,我是新来的stackoverflow,只是发现评论不允许换行符。我编辑了我仍然有问题的问题。提前致谢。 – 2011-12-20 06:03:26

+0

1.9.3p0,rails 3.1.3 – 2011-12-20 06:09:55

+0

尝试在assert之前放置'debugger'。 “调试器”在断言之前是 – 2011-12-20 06:11:36

2

使用Pry,并将binding.pry作为断点。

您可能会喜欢this Railscast

+1

阿曼达的建议很简单,但不要忽视它。我一直使用pry,我认为比ruby-debug更容易。链接的钢轨是一个很好的开始。 – HectorMalot 2011-12-21 07:14:04

+1

谁是阿曼达? :P – Amadan 2011-12-21 08:51:37