NAME Test::Chado - Unit testing for chado database modules and applications VERSION version v4.1.1 SYNOPSIS Start with a perl module This means you have a module with namespace(with or without double colons), along with Makefile.PL or Build.PL or even dist.ini. You have your libraries in lib/ folder and going to write tests in t/ folder. This could an existing or new module, anything would work. Write tests It should be in your .t file(t/dbtest.t for example) use Test::More; use Test::Chado; use Test::Chado::Common; my $schema = chado_schema(load_fixtures => 1); has_cv($schema,'sequence', 'should have sequence ontology'); has_cvterm($schema, 'part_of', 'should have term part_of'); has_db($schema, 'SO', 'should have SO in db table'); has_dbxref($schema, '0000010', 'should have 0000010 in dbxref'); drop_schema(); Run any test commands to test it against chado sqlite prove -lv t/dbtest.t ./Build test make test Run against postgresql #Make sure you have a database with enough permissions prove -l --dsn "dbi:Pg:dbname=testchado;host=localhost" --user tucker --password halo t/dbtest.t ./Build test --dsn "dbi:Pg:dbname=testchado;host=localhost" --user tucker --password halo make test --dsn "dbi:Pg:dbname=testchado;host=localhost" --user tucker --password halo Run against postgresql without setting any custom server prove -l --postgression t/dbtest.t ./Build test --postgression make test --postgression DOCUMENTATION Use the quick start or pick any of the section below to start your testing. All the source code for this documentation is also available here . Quick start Testing perl distribution Testing web application Testing with postgresql Loading custom schema(sql statements) for testing Loading custom fixtures(test data) API Methods All the methods are available as all export group. There are two more export groups. schema chado_schema reload_schema drop_schema manager get_fixture_loader_instance set_fixture_loader_instance get_dbmanager_instance set_dbmanager_instance chado_schema(%options) Return an instance of DBIx::Class::Schema for chado database. However, because of the way the backends works, for Sqlite it returns a on the fly schema generated from DBIx::Class::Schema::Loader, whereas for Pg backend it returns Bio::Chado::Schema options load_fixture : Pass a true value(1) to load the default fixture, default is false. custom_fixture: Path to a custom fixture file made with DBIx::Class::Fixtures. It should be a compressed tarball. Currently it is recommended to use tc-prepare-fixture script to make custom fixutre so that it fits the expected layout. Remember, only one fixture set could be loaded at one time and if both of them specified, *custom_fixture* will take precedence. drop_schema reload_schema Drops and then reloads the schema. set_fixture_loader_type Sets the type of fixture loader backend it should use, either of preset or flatfile. get_dbmanager_instance Returns an instance of backend class that implements the Test::Chado::Role::HasDBManager Role. set_dbmanager_instance Sets the dbmanager class that should implement Test::Chado::Role::HasDBManager Role. get_fixture_loader_instance Returns an instance of fixture loader class that implements the Test::Chado::Role::Helper::WithBcs Role. set_fixture_loader_instance Sets fixture loader class that should implement the Test::Chado::Role::Helper::WithBcs Role. Build Status AUTHOR Siddhartha Basu COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Siddhartha Basu. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.