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 
    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 
    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