Tarantula
DESCRIPTION
Tarantula is a big fuzzy spider. It crawls your Rails application, fuzzing data to see what breaks.
Dependencies
htmlentities hpricot facets >= 2.4.3
Usage
#!sh
rake tarantula:setup
Creates a Rails integration test that looks like this, filling in your own auth params. You will probably want to include all fixtures.
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/:
#!sh
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” on our Trac instance here: opensource.thinkrelevance.com/. You’ll have to create an account (Sorry! Otherwise we’d get way too much spam).
License and Copyright
Copyright © 2008 Relevance, Inc., released under the MIT license