%TestSuiteInDir Test suite requiring temporary directory change
% The TestSuiteInDir class defines a test suite that has to be run by first
% changing to a specified directory.
%
% The setUp method adds the starting directory to the path and then uses cd to
% change into the specified directory. The tearDown method restores the
% original path and directory.
%
% TestSuiteInDir methods:
% TestSuiteInDir - Constructor
% gatherTestCases - Add test cases found in the target directory
%
% See also TestSuite
% Steven L. Eddins
% Copyright 2009 The MathWorks, Inc.
classdef TestSuiteInDir < TestSuite & TestComponentInDir
methods
function self = TestSuiteInDir(testDirectory)
%TestCaseInDir Constructor
% TestCaseInDir(testName, testDirectory) constructs a test case
% using the specified name and located in the specified directory.
self = self@TestComponentInDir(testDirectory);
if strcmp(testDirectory, '.')
self.Name = pwd;
self.Location = pwd;
else
[pathstr, name] = fileparts(testDirectory);
self.Name = name;
self.Location = testDirectory;
end
end
function gatherTestCases(self)
%gatherTestCases Add test cases found in the target directory
% suite.gatherTestCases() automaticall finds all the test cases in
% the directory specified in the constructor call and adds them to
% the suite.
current_dir = pwd;
c = onCleanup(@() cd(current_dir));
cd(self.TestDirectory);
tmp = TestSuite.fromPwd();
self.TestComponents = tmp.TestComponents;
end
end
end