104 lines
3.8 KiB
Matlab
104 lines
3.8 KiB
Matlab
%TestRunLogger Collect data (silently) from running test suite
|
|
% TestRunLogger is a subclass of TestRunMonitor uses to collect information
|
|
% from an executing test component (either a test case or a test suite).
|
|
% It maintains a record of event notifications received, as well as any test
|
|
% failures or test errors.
|
|
%
|
|
% TestRunLogger methods:
|
|
% testComponentStarted - Log test component started
|
|
% testComponentFinished - Log test component finished
|
|
% testCaseFailure - Log test case failure
|
|
% testCaseError - Log test case error
|
|
%
|
|
% TestRunLogger properties:
|
|
% Log - Cell array of test notification strings
|
|
% NumFailures - Number of test failures during execution
|
|
% NumErrors - Number of test errors during execution
|
|
% NumTestCases - Total number of test cases executed
|
|
% Faults - Struct array of test fault information
|
|
%
|
|
% See also CommandWindowTestRunDisplay, TestRunMonitor, TestSuite
|
|
|
|
% Steven L. Eddins
|
|
% Copyright 2008-2009 The MathWorks, Inc.
|
|
|
|
classdef TestRunLogger < TestRunMonitor
|
|
|
|
properties (SetAccess = protected)
|
|
%Log Cell array of test notification strings
|
|
% Test notification strings include 'TestRunStarted',
|
|
% 'TestRunFinished', 'TestComponentStarted', 'TestComponentFinished',
|
|
% 'TestCaseFailure', and 'TestCaseError'.
|
|
Log
|
|
|
|
%NumFailures Number of test failures during execution
|
|
NumFailures = 0
|
|
|
|
%NumErrors Number of test errors during execution
|
|
NumErrors = 0
|
|
|
|
%NumTestCases Total number of test cases executed
|
|
NumTestCases = 0
|
|
|
|
%Faults Struct array of test fault information
|
|
% Faults is a struct array with the fields Type, TestCase, and
|
|
% Exception. Type is either 'failure' or 'error'. TestCase is the
|
|
% test case object that triggered the fault. Exception is the
|
|
% MException object thrown during the fault.
|
|
Faults = struct('Type', {}, 'TestCase', {}, 'Exception', {});
|
|
end
|
|
|
|
properties (SetAccess = private, GetAccess = private)
|
|
InitialTestComponent = []
|
|
end
|
|
|
|
methods
|
|
|
|
function testComponentStarted(self, component)
|
|
if isempty(self.InitialTestComponent)
|
|
self.InitialTestComponent = component;
|
|
self.appendToLog('TestRunStarted');
|
|
end
|
|
|
|
self.appendToLog('TestComponentStarted');
|
|
|
|
if isa(component, 'TestCase')
|
|
self.NumTestCases = self.NumTestCases + 1;
|
|
end
|
|
end
|
|
|
|
function testComponentFinished(self, component, did_pass)
|
|
self.appendToLog('TestComponentFinished');
|
|
|
|
if isequal(component, self.InitialTestComponent)
|
|
self.appendToLog('TestRunFinished');
|
|
end
|
|
end
|
|
|
|
function testCaseFailure(self, test_case, failure_exception)
|
|
self.appendToLog('TestCaseFailure');
|
|
self.NumFailures = self.NumFailures + 1;
|
|
self.logFault('failure', test_case, ...
|
|
failure_exception);
|
|
end
|
|
|
|
function testCaseError(self, test_case, error_exception)
|
|
self.appendToLog('TestCaseError');
|
|
self.NumErrors = self.NumErrors + 1;
|
|
self.logFault('error', test_case, ...
|
|
error_exception);
|
|
end
|
|
end
|
|
|
|
methods (Access = private)
|
|
function appendToLog(self, item)
|
|
self.Log{end+1} = item;
|
|
end
|
|
|
|
function logFault(self, type, test_case, exception)
|
|
self.Faults(end + 1).Type = type;
|
|
self.Faults(end).TestCase = test_case;
|
|
self.Faults(end).Exception = exception;
|
|
end
|
|
end
|
|
end
|