We’re using Devise’s token_authenticatable to improve our Cucumber test suite performance.
Here’s an example feature
Scenario: I would like to edit a user account
Given I am logged in as an admin user
...
And here’s the token_authenticatable step
Given /^(?:I am logged in|the user is logged in|the user logs in|I log in)(?: as an? (w+) user)?$/ do |role|
if ENV['use_token']
visit admin_dashboard_path(:token => @user.authentication_token)
else
Given("the user logs in with email: "#{@user.email}", password: "#{@password}"")
...
end
We’ll then run cucumber using a “faster” profile
$ cucumber -p faster
And finally, here’s our cucumber.yml
faster: <%= std_opts %> features FASTER=true
Our cucumber tests run significantly faster after switching to the token_authenticatable approach.
Interesting, nice tip!
September 1, 2010 at 11:29 am