RightDevelop is a library of reusable, unit- and functional-tested Ruby code that RightScale has found broadly useful. Maintained by the RightScale Teal Team == What Does It Do? === Continuous Integration Jenkins groks JUnit XML test results very well, and has lots of hidden features associated with them. Tests are tests, so we've written an RSpec formatter that Jenkins will feel right at home with! To use our CI harness, just add the following to your Rakefile (or into lib/tasks/ci.rake): require 'right_develop' RightDevelop::CI::RakeTask.new ==== Customizing your CI Harness You can override various aspects of the CI harness' behavior by passing a block to the constructor which tweaks various instance variables of the resulting Rake task: RightDevelop::CI::RakeTask.new do |task| task.ci_namespace = :my_happy_ci task.rspec_pattern = "spec/important/**/*_spec.rb" # only run the important specs for CI task.output_path = "ci_results" # use ci_results as the base dir for all output files task.rspec_output = "happy_specs.xml" # write to ci_results/rspec/happy_specs.xml end ==== Keeping the CI Harness Out of Production We recommend that you don't install RightDevelop -- or other test-only gems such as rspec -- when you deploy your code to production. This improves the startup time and performance of your app, and prevents instability due to potential bugs in test code. To prevent RightDevelop from shipping to production, simply put it in the "development" group of your Gemfile: group :development do gem 'right_develop' end And ensure that you deploy your code using Bundler's --without flag: bundle install --deployment --without development And finally, modify your Rakefile so you can tolerate the absence of the RightDevelop rake classes. For this, you can use RightSupport's Kernel#require_succeeds? extension to conditionally instantiate the Rake tasks: require 'right_support' if require_succeeds?('right_develop') RightDevelop::CI::RakeTask.new end