A distributed Test Suite runner for Rails, using Eventmachine and Redis
Switch branches/tags
Clone or download
Pull request Compare This branch is 39 commits ahead, 70 commits behind code-mancers:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Borg is a distributed test runner for running you unit/functionals tests, specs or cucumber scenarios, across a network of machines.

It is written using EventMachine and Redis and has rather very simple design at its heart. More details forthcoming..

Installation Guide

  1. Requirements
  2. Installation procedure


== 1. We need Redis for this setup.

Redis is an open source, advanced key-value store.
It is often referred to as a data structure server since keys can contain strings,
hashes, lists, sets and sorted sets.

2. Installation procedure

Step 1 : Choose a machine where you want to run the borg server(for instance a Server with ip in mycase).

Step 2 : We need a Redis server for this setup. So, install redis server and run the redis server on same machine( i.e IBM machine).

Please refer http://redis.io/ to install the redis

Step 3 : checkout your project with borg gem

Step 4 : Add a configuration file solaro/config/config.yml as per above server IP and push the code (server IP is :

For instance

redis_ip: ""
redis_port: 6379
build_server_ip: ""
build_server_port: 10001
build_test_unit_processes: 3
build_cucumber_processes: 1
test_framework: "rake spec/ rake test"

Step 5 : Add a a borg_config.rb in initializers.

For instance

Borg::Config.ip = configatron.build_server_ip
Borg::Config.port = configatron.build_server_port
Borg::Config.redis_ip = configatron.redis_ip
Borg::Config.redis_port = configatron.redis_port
Borg::Config.test_unit_processes = configatron.build_test_unit_processes
Borg::Config.cucumber_processes = configatron.build_cucumber_processes
Borg::Config.test_framework = configatron.test_framework

Step4 : Go to project folder and start the BORG server (i.e Server machine) as follows

rake borg:start_server --trace > ~/server_log/borg_server.log 2>&1 &   # Start server

Step5 : Choose a Client machine and checkout project folder and run the Client

rake borg:start_client --trace > log/borg_client.log 2>&1 &

You can run the client on the same server

Step6: Run the task rake borg:build and we can also add this task to cruise config. So it will run for every new push.

That's it!.

Stop the server & Stop the client using below methods

rake borg:stop_client & rake borg:stop_client

Step6: Run the task rake borg:build and we can also add this task to cruise config. So it will run for every new push.

Contributing to tickle

* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
* Fork the project
* Start a feature/bugfix branch
* Commit and push until you are happy with your contribution
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.


Copyright (c) 2011 Hemant Kumar. See LICENSE.txt for further details.