Ruby HTML CSS Shell Groff JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
edition3 validate independent of the current date Oct 23, 2012
edition4 errata Jun 29, 2016
Dockerfile rough in a dockerfile Feb 9, 2016
Gemfile more rails-dev-box Feb 9, 2016
Rakefile Start to streamline deployment Feb 7, 2016
c9setup clean environment Feb 8, 2016
checkinout.rb Split Rails chapter into two, and other cleanup Jul 11, 2009
clerk.rb Rough in a prune operation Apr 7, 2013
dashboard.rb remove debug statement May 14, 2016
environment.rb AJAX Jun 4, 2016
jquery-ui-1.7.2.custom.min.js fade technique Mar 3, 2010
rdb-setup reload .bash_profile to pick up rvm Feb 10, 2016
testrails.yml update Ruby versions May 7, 2016


Agile Web Development with Rails (awdwr) is a test suite for the scenario found in the book by the same name published by Pragmatic Programmers. It was originally developed out of self defence to keep up with the rapid pace of change in Rails itself, and has also proven valuable as a system test for rails itself.

This code has been developed over a long period of time, and still has accommodations for things like:

  • The days before puma was the default
  • The days before SCSS and CoffeeScript
  • The days before sprockets when images were placed in public/images
  • The days before bundler existed
  • Ruby 1.8.7's hash syntax and the requirement to require rubygems if you wanted to use it.

It works natively on Mac OS/X El Capitan and Ubuntu 14.04. It works with either rbenv or rvm. The dashboard can be run as CGI under Apache httpd, using Passenger on nginx, or simply with WebBrick.

Instructions are provided separately for usage under vagrant and cloud9. Or install Rails Dev Box, ssh into the vagrant machine and run the following command:

eval "$(curl"

Control over directory locations and versions to be tested is provided by dashboard.yml and testrails.yml.


Installation of all necessary dependencies from a fresh install of Ubuntu or Mac OS/X:

ruby setup.rb # see comments if dependencies aren't met

Execution instructions:

ruby makedepot.rb [VERSION] [restore] [RANGE]... [save] --work=dir --port=n

Description of the options:

"restore" - restore from snapshot before resuming execution

"VERSION" specifies the Rails version to test.  Examples:

"RANGE" specifies a set of sections to execute.  Examples:

"save" - save snapshot after execution completes

--work=dir: name of work directory to use (default: "work")

--port=n: port number to use for the test (default: 3000)

Output will be produced as makedepot.html.

Tests against makedepot.html can also be run separately:

ruby checkdepot.rb

Output will be produced as checkdepot.html.

Automation tools:

  • setup.rb: initial setup and verification
  • testrails.rb: front end to makedepot that manages the environment
  • dashboard.rb: cgi to monitor status / start jobs

Sample configuration data:

  • testrails.yml: provides mappings for edition, rails, and ruby versions
  • dashboard.yml: lists test configurations

Sample output: