4.3. Continuous Integration
So far, I've been talking about automating build tasks in the sense of allowing complex tasks to be repeated at will with a single command. Although this is very cool and useful, it would be even more useful if complex tasks could be repeated automatically without any manual intervention. The two tools in this section allow you to do just that.
Fully automatic build tasks are most notably used for running tests and for deployment. For now, the focus is on testing. (Deployment will be covered in a future chapter.) A fully automated test tool continually runs your project's test suite whenever it detects a change. Several continuous test tools aimed at Ruby or Rails have been created, and it's not clear as of this writing that any one of them has established itself as the best and brightest. One tool, ZenTest, runs best locally on the developer's machine, while another, CruiseControl.rb, is designed to be placed either on a local machine or a common build server.
ZenTest is a Ruby testing utility that has a number of interesting features, including the capability to automatically create stub tests for methods in your project, and some utilities for improving the output and structure of your Rails tests. The feature under discussion here is called Autotest, and it's a nice way to continuously run automated tests on your development box.
ZenTest is distributed as a Ruby gem. To get it, try the following:
gem install ZenTest
Depending on ...