Skip to content

Instantly share code, notes, and snippets.

@Epictetus
Forked from dchelimsky/output.txt
Created March 22, 2012 14:14
Show Gist options
  • Save Epictetus/2158572 to your computer and use it in GitHub Desktop.
Save Epictetus/2158572 to your computer and use it in GitHub Desktop.
RSpec is not the reason your rails test suite is slow
[david: compare]$ # at this point we have a stock rails app with no minitest tests and one pending rspec example
[david: compare]$
[david: compare]$ time rake test
Run options:
# Running tests:
Finished tests in 0.030419s, 0.0000 tests/s, 0.0000 assertions/s.
0 tests, 0 assertions, 0 failures, 0 errors, 0 skips
real 0m5.694s
user 0m4.503s
sys 0m0.811s
[david: compare]$ time rake spec
/Users/david/.rvm/rubies/ruby-1.9.3-p0/bin/ruby -S rspec ./spec/models/thing_spec.rb
*
Pending:
Thing add some examples to (or delete) /Users/david/tmp/compare/spec/models/thing_spec.rb
# No reason given
# ./spec/models/thing_spec.rb:4
Finished in 0.00072 seconds
1 example, 0 failures, 1 pending
real 0m4.918s
user 0m3.839s
sys 0m0.697s
[david: compare]$
[david: compare]$ echo 'require "test_helper"
>
> class ThingTest < ActiveSupport::TestCase
> test "empty" do
> end
> end
> ' > test/unit/thing_test.rb
[david: compare]$
[david: compare]$ echo 'require "spec_helper"
>
> describe Thing do
> example "empty" do
> end
> end
> ' > spec/models/thing_spec.rb
[david: compare]$
[david: compare]$ time rake test
Run options:
# Running tests:
.
Finished tests in 0.078296s, 12.7720 tests/s, 0.0000 assertions/s.
1 tests, 0 assertions, 0 failures, 0 errors, 0 skips
real 0m5.802s
user 0m4.565s
sys 0m0.847s
[david: compare]$ time rake spec
/Users/david/.rvm/rubies/ruby-1.9.3-p0/bin/ruby -S rspec ./spec/models/thing_spec.rb
.
Finished in 0.00475 seconds
1 example, 0 failures
real 0m4.950s
user 0m3.903s
sys 0m0.725s
[david: compare]$
[david: compare]$ echo 'require "test_helper"
>
> class ThingTest < ActiveSupport::TestCase
> 1000.times.map do |n|
> test "empty #{n}" do
> end
> end
> end
> ' > test/unit/thing_test.rb
[david: compare]$
[david: compare]$ echo 'require "spec_helper"
>
> describe Thing do
> 1000.times.map do |n|
> example "empty #{n}" do
> end
> end
> end
> ' > spec/models/thing_spec.rb
[david: compare]$
[david: compare]$ time rake test
Run options:
# Running tests:
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Finished tests in 0.753860s, 1326.5062 tests/s, 0.0000 assertions/s.
1000 tests, 0 assertions, 0 failures, 0 errors, 0 skips
real 0m6.730s
user 0m5.047s
sys 0m0.887s
[david: compare]$ time rake spec
/Users/david/.rvm/rubies/ruby-1.9.3-p0/bin/ruby -S rspec ./spec/models/thing_spec.rb
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Finished in 0.99978 seconds
1000 examples, 0 failures
real 0m6.023s
user 0m4.615s
sys 0m0.790s
rails new compare
cd compare
rails g model thing name:string
echo "gem 'rspec-rails', '2.9.0.rc2', :group => [:development, :test]" >> Gemfile
bundle
rails g rspec:install
rails g model thing name:string --skip-migration
rake db:migrate
rake db:test:prepare
# at this point we have a stock rails app with no minitest tests and one pending rspec example
time rake test
time rake spec
echo 'require "test_helper"
class ThingTest < ActiveSupport::TestCase
test "empty" do
end
end
' > test/unit/thing_test.rb
echo 'require "spec_helper"
describe Thing do
example "empty" do
end
end
' > spec/models/thing_spec.rb
time rake test
time rake spec
echo 'require "test_helper"
class ThingTest < ActiveSupport::TestCase
1000.times.map do |n|
test "empty #{n}" do
end
end
end
' > test/unit/thing_test.rb
echo 'require "spec_helper"
describe Thing do
1000.times.map do |n|
example "empty #{n}" do
end
end
end
' > spec/models/thing_spec.rb
time rake test
time rake spec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment