Testing Ruby

This is part of a series of articles I started with Quality Assurance and Automated Testing in Open Source Software.

Ruby is a relatively young dynamic language that got a serious boost in the recent years thanks to the Rails framework for building web application.

Development

Development and patching is described on the Ruby Core page.

Version control: Subversion

Building Ruby from the trunk requires an already working version of Ruby.

The commands to build Ruby are easy:


    svn co http://svn.ruby-lang.org/repos/ruby/trunk ruby
    cd ruby
    autoconf
    ./configure
    make
    make test
    
    PASS 729 tests

Actually one can run either make test that will run a smaller set of tests (currently 729 unit tests) or make check that will run a larger set of test but what has crashed last time when I tried with Segmentation fault.

Testing

In the test suit of Ruby they employ the Test::Unit Ruby class. This class provides a set of assertions for the unit tests such as assert(trueness), assert_equal(expected_value, received_value), etc...

Tests can be found in the test/ subdirectory of the source code.

Automated Testing

I asked on the Ruby-Core development mailing list and according to the response there is not automated smoke testing in Ruby.

On the other hand the Rubinius project aimed at creating a virtual machine for Ruby has its own separate set of test creating the specifications.