Mercurial > hg > ltpda
diff m-toolbox/classes/tests/@ltpda_test_runner/ltpda_test_runner.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/tests/@ltpda_test_runner/ltpda_test_runner.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,211 @@ +% LTPDA_TEST_RUNNER can be used to run unit tests for LTPDA. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% DESCRIPTION: LTPDA_TEST_RUNNER can be used to run unit tests for LTPDA. +% The class exposes a method called 'run_tests' which can run different +% configurations of tests. +% +% >> help ltpda_test_runner.run_tests +% +% SUPER CLASSES: handle +% +% +% VERSION: $Id: ltpda_test_runner.m,v 1.8 2011/04/27 19:42:15 ingo Exp $ +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +classdef ltpda_test_runner < handle + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Property definition % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %---------- Public (read/write) Properties ---------- + properties + output = 0; + results = []; + includeRepositoryTests = false; + includeClassTests = false; + includeModelTests = false; + includeExtensionTests = false; + repositoryPlist = []; + end + + %---------- Protected read-only Properties ---------- + properties (SetAccess = protected) + end + + %---------- Private Properties ---------- + properties (GetAccess = protected, SetAccess = protected) + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Check property setting % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Constructor % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods + function obj = ltpda_test_runner(varargin) + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (public) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods + + function res = skipRepoTests(runner) + pl = runner.repositoryPlist; + if isa(pl, 'plist') + % Add necessary parameter for auto tests + pl.combine(plist('no dialog', true, 'use selector', false)); + + if pl.isparam('hostname') && ... + pl.isparam('database') && ... + pl.isparam('username') && ... + pl.isparam('password') + res = false; + else + res = true; + end + else + res = true; + end + end + + function c = failureCount(runner) + c = 0; + for kk=1:numel(runner.results) + r = runner.results(kk); + if ~r.passed + c = c+1; + end + end + end + + function dumpResults(runner) + printer = ut_result_printer(runner); + printer.dump(); + end + + function clear(varargin) + runner = varargin{1}; + runner.results = []; + end + + function appendErrorResult(runner, utp, method, Me) + result = ut_result(utp,method); + result.passed = false; + result.message = ut_result.formatException(Me); + result.finish; + runner.appendResult(result); + end + + function appendResult(runner, result) + if isa(result, 'ut_result') + result.finish(); + runner.results = [runner.results result]; + else + error('Can''t append an object of type %s to the results list', class(result)); + end + end + + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (hidden) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods (Hidden = true) + varargout = addlistener(varargin); + varargout = notify(varargin); + varargout = delete(varargin); + varargout = findobj(varargin); + varargout = findprop(varargin); + varargout = ge(varargin); + varargout = gt(varargin); + varargout = le(varargin); + varargout = lt(varargin); + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (private) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + methods (Access = protected) + + varargout = run_test_list(varargin) + varargout = get_builtin_model_tests(varargin) + varargout = get_class_tests(varargin) + varargout = get_tests_for_class(varargin) + varargout = get_tests_in_dir(varargin) + + end + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (static) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods (Static) + + % RUN_TESTS provides a convenient static interface to + % ltpda_test_runner/run_tests. + function RUN_TESTS(varargin) + runner = ltpda_test_runner(); + runner.run_tests(varargin{:}); + runner.dumpResults(); + end + + % RUN_TESTS provides a convenient static interface to + % run all tests. + function RUN_ALL_TESTS + runner = ltpda_test_runner(); + runner.run_tests('all'); + runner.dumpResults(); + end + + % RUN_TESTS provides a convenient static interface to + % run all model tests. + function RUN_MODEL_TESTS + runner = ltpda_test_runner(); + runner.run_tests('models'); + runner.dumpResults(); + end + + % RUN_TESTS provides a convenient static interface to + % run all class tests. + function RUN_CLASS_TESTS + runner = ltpda_test_runner(); + runner.run_tests('classes'); + runner.dumpResults(); + end + + function ii = getInfo(varargin) + ii = utils.helper.generic_getInfo(varargin{:}, 'ltpda_utp'); + end + + function out = VEROUT() + out = '$Id: ltpda_test_runner.m,v 1.8 2011/04/27 19:42:15 ingo Exp $'; + end + + function out = SETS() + out = {}; + end + + function out = getDefaultPlist() + out = []; + end + + end + +end +