mak*_*dad 6 rake unit-testing testunit ruby-on-rails-3
我们正在开发一个关于Ruby 1.9.3和Rails 3.2.1的应用程序.
最近,我们的单元测试在开始时变得迟钝.调用和执行需要大约15秒.一旦我看到"执行测试:单位",在看到任何输出之前还需要10秒钟.最后,任务完成,测试只需3秒即可自行执行.
可以接受3秒的单元测试.对于BDD/TDD,25秒加载时间是不现实的.
这是我跑步时会发生的事情rake test:units --trace
:
** Invoke test:units (first_time)
** Invoke test:prepare (first_time)
** Invoke db:test:prepare (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
** Execute db:test:prepare
** Invoke db:test:load (first_time)
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
** Execute db:test:load
** Invoke db:test:load_schema (first_time)
** Invoke db:test:purge
** Execute db:test:load_schema
** Invoke db:schema:load (first_time)
** Invoke environment
** Execute db:schema:load
** Execute test:prepare
** Execute test:units
Run Code Online (Sandbox Code Playgroud)
我不怀疑正在加载,然后重新加载的数据库模式可能是缓慢的关键来源.但是,我没有对我们的Rakefile
单元测试做任何事情.我在哪里可以看到引擎盖下真正发生的事情?
这是最重要的test/test_helper.rb
:
require 'simplecov'
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
simplecov
,因为我们只将它用于CI服务器,而不是在开发期间(执行时间没有差别)关于我可以在哪里/如何戳我的头看到的任何想法?
Rails是否有可能正在运行迁移而不仅仅是schema:load
?随着我们的发展,我们有大量的迁移(~30).
编辑:
我正在使用2011款Macbook Pro配备8G内存和酷睿i7 - 不要认为这是我的机器.我在这个问题上看到,在Windows上,require
可能会导致问题.
我也认为固定装置可能是问题,但如果固定装置是问题,测试本身,而不是测试的加载时间,会很慢,对吗?
编辑2:
感谢pchap10k的回答,我认为它与rake无关 - 这是关于我们的Gemfile
.也许我应该搜索那个区域......
归档时间: |
|
查看次数: |
1595 次 |
最近记录: |