Running amqp gem test suite

This Documentation Has Moved to rubyamqp.info

amqp gem documentation guides are now hosted on rubyamqp.info.

About this guide

This guide is for people who want to contribute to amqp gem development. It has no relevant information for those who want to build applications using the library.

This work is licensed under a Creative Commons Attribution 3.0 Unported License (including images & stylesheets). The source is available on Github.

Covered versions

Not applicable.

Canonical repository

Since late 2010, the canonical amqp gem repository is at github.com/ruby-amqp/amqp and not tmm1/amqp.

Initial setup

amqp gem currently uses recent releases of RabbitMQ for automated tests. Broker installation is described in the Getting started guide and on rabbitmq.com. Once the broker is running, the only other step is to run


./bin/set_test_suite_realms_up.sh

that will set up vhosts and users we test authentication and authorization against. Please note that the script uses `rabbitmqctl` tool and in the server environment (for example, a virtual instance in the cloud) depending on your OS and/or distribution of choice, that tool may or may not be accessible to your OS user, so pay attention to that.

Dependencies

Dependencies are managed by Bundler. So begin with


gem install bundler

and then, from the root of the repository run


bundle install

and you are good to go.

Running spec examples

During development, it is sufficient to just use


bundle exec rspec -c ./spec

or replace ./spec with an individual file you want to run.

Continuous integration

CI happens in two steps:

  • Clean up *.rbc files produced by Rubinius.
  • Run the whole test suite

For that, we use Rake:


rake spec:ci

Thanks to the excellent Travis CI project, we run test suites across multiple Ruby implementations/versions and 2 EventMachine versions.

Authors

This guide was written by Michael Klishin and edited by Chris Duncan.

Tell us what you think!

Please take a moment and tell us what you think about this guide on Twitter or Ruby AMQP mailing list: what was unclear? what wasn’t covered? maybe you don’t like guide style or grammar and spelling are incorrect? Readers feedback is key to making documentation better.

If mailing list communication is not an option for you for some reason, you can contact guides author directly