rails测试套件中显示的数据库调用

时间:2013-10-05 15:30:31

标签: ruby-on-rails testing rspec capybara

我的测试套件包括防护装置,rspec,spork和水豚。我是TDD的新手,但在学习之前,我会经常看到由服务器输出中的rails生成的数据库查询(使用thin)。这很有用,因为我可以立即看到何时需要进一步优化查询。

我想知道是否可以使用上述工具的任何宝石实现此行为,或者是否有我可以在测试中使用的另一个宝石来输出类似的信息。

我在测试套件中使用的主要宝石如下:

group :development, :test do
  gem 'rspec-rails'
  gem 'guard-rspec'
  gem 'spork-rails'
  gem 'guard-spork'
end

group :test do
  gem 'capybara'
  gem 'selenium-webdriver', "~> 2.35.1"
end

2 个答案:

答案 0 :(得分:3)

您可以在测试日志中查看生成的数据库查询:

$ tail -f log/test.log

它显示所有已执行的查询+一些用于设置测试数据库的插入和回滚语句。

答案 1 :(得分:0)

这是一个FAQ;在您的environment / test.rb文件中尝试ActiveRecord::Base.logger.level = Logger::DEBUG

接下来,学习Rails& TDD,请勿使用Capybara。坚持RSpec。我应该说要坚持正常的测试用例,但RSpec已经占用了这个空间,所以你会发现很多在线支持。

Capybara用于测试高级&端到端的事情。您只需要TDD,您的数据库包含某某某某,并且您生成的网页包含某某,所以坚持下去。