Hi -- On Tue, 30 Jun 2009, Diana Jaunzeikare wrote: > Hi all, > > I am developing support for PhyloXML in BioRuby as Google Summer of Code > project. I have a question about unit testing. > > My code depends on libxml-ruby library (other parts of BioRuby does not). So > I want to test if libxml-ruby is required and then if it is not, i want to > quit my unit test suite (a file tes_phyloxml.rb) nicely (don't perform any > unit tests related to phyloxml since they anyways gonna fail) but the rest > of unit test suites should continue running. > > Right now the it completely exits, if can't load xml library, but I would > like the other tests to continue running. > > #First let's test if xml library is here, since it will be required by > bio/db/phyloxml > begin > require 'xml' > rescue LoadError > puts "Please install libxml-ruby library. It is needed for Bio::PhyloXML > module. Unit tests will exit now. > exit 1 > end > > require 'bio/db/phyloxml' > > > class TestPhyloXML1 < Test::Unit::TestCase > > def setup > @phyloxml = Bio::PhyloXML.new(TestPhyloXMLData.example_xml) > end > > def test_init > assert_equal(@phyloxml.class, Bio::PhyloXML) > end > > #[...] > > end Maybe something like this, if it's not too convoluted: no_xml = false begin require 'xml' rescue LoadError puts "No libxml; not running those tests...." # or whatever no_xml = true end unless no_xml class TestPhyloXML1 etc. David -- David A. Black / Ruby Power and Light, LLC Ruby/Rails consulting & training: http://www.rubypal.com Now available: The Well-Grounded Rubyist (http://manning.com/black2) "Ruby 1.9: What You Need To Know" Envycasts with David A. Black http://www.envycasts.com