tarantula
Description
Tarantula is a big fuzzy spider. It crawls your Rails application, fuzzing data to see what breaks.
Install
script/plugin install http://opensource.thinkrelevance.com/svn/rubygems/tarantula/trunk tarantula
Dependencies
gem install htmlentities gem install facets
Usage
Create a Rails integration test that looks like this, filling in your own auth params. You will probably want to include all fixtures.
# somewhere require 'relevance/tarantula' # in your test def test_with_login post '/sessions/create', :password => 'your-pass' assert_response :redirect assert_redirected_to '/' follow_redirect! tarantula_crawl(self) end
If you want to set custom options, you can get access to the crawler and set properties before running it. For example, this would turn on HTMLTidy.
def test_with_login post '/sessions/create', :password => 'your-pass' assert_response :redirect assert_redirected_to '/' follow_redirect! t = tarantula_crawler(self) t.handlers << Relevance::Tarantula::TidyHandler.new t.crawl '/' end
Assuming your project is at /work/project/:
cd /work/project rake tarantula:test
Verbose Mode
If you run the test you will get a report in tmp/tarantula. You can also set VERBOSE=true to see more detail as the test runs.
For more options see the test suite.
Allowed Errors
If, for example, a 404 is an appropriate response for some URLs, you can tell Tarantula to allow 404s for URLs matching a regexp:
t = tarantula_crawler(self)
t.allow_404_for %r{/users/\d+/}
Bugs/Requests
Please submit your bug reports, patches or feature requests as a ticket under the component "tarantula". You'll have to create an account (Sorry! Otherwise we'd get way too much spam).
License and Copyright
Copyright (c) 2008 Relevance, Inc., released under the MIT license
