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
![Travis CI status](https://travis-ci.org/dictyBase/Test-Chado.png?branch=develop)
![Coverage Status](https://coveralls.io/repos/dictyBase/Test-Chado/badge.png?branch=develop)
AUTHOR
Siddhartha Basu <biosidd@gmail.com>
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.