Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Rake tasks to invoke single tests/specs with rakish syntax

branch: master
Octocat-spinner-32 lib v0.6.0 August 17, 2013
Octocat-spinner-32 spec modernize August 17, 2013
Octocat-spinner-32 .travis.yml modernize August 17, 2013
Octocat-spinner-32 Gemfile modernize August 17, 2013
Octocat-spinner-32 Gemfile.lock v0.6.0 August 17, 2013
Octocat-spinner-32 MIT-LICENSE license August 26, 2013
Octocat-spinner-32 Rakefile modernize August 17, 2013
Octocat-spinner-32 Readme.md Fix typo November 14, 2013
Octocat-spinner-32 gem-public_cert.pem modernize August 17, 2013
Octocat-spinner-32 single_test.gemspec modernize August 17, 2013
Readme.md

Runs a single test/spec via rake.

INSTALLATION

sudo gem install single_test

Include in your Rakefile:

require 'single_test/tasks'

USAGE

Single test/spec

Searches for test-files matching the given name.

rake spec:user          #run spec/model/user_spec.rb
rake test:users_c       #run test/functional/users_controller_test.rb
rake spec:admin/users_c #run spec/controllers/admin/users_controller_spec.rb
rake test:u*hel         #run test/helpers/user_helper_test.rb

Searches for test-files by class (Foo::Bar -> foo/bar)

rake spec:Foo::Bar #run spec/foo/bar_spec.rb

Single test-case/example

rake spec:user:token    #run the first spec in user_spec.rb that matches /token/
rake test:user:token    #run all tests in user_test.rb that match /token/

Spec-server

rake spec:user X=       #run test on spec_sever (if one is running...), very fast for quick failure pin-pointing

All one by one

rake spec:one_by_one    #run each spec/test one by one, to find tests that fail when ran
rake test:one_by_one    #on their own or produce strange output

For last modified file

rake test:last
rake spec:last

TIPS

  • if script/spec is missing, it will use just spec for specs (which solves some issues)
  • run whole describe blocks: describe 'xxx' do describe 'yyy' --> rake spec:file:'xxx yyy'
  • run single examples or describe blocks via line-numbers rspec spec/foo_spec:123

TODO

  • make test:last more clever e.g. lib -> try spec + spec/lib

Authors

Contributors

Michael Grosser
michael@grosser.it
License: MIT Build Status

Something went wrong with that request. Please try again.