This is my first time creating unittest, and I am having trouble directing unitTestClass to see the function it tests, which lives in a different directory.
I have the following directory structure:
+utilityFUnctions/ utilityFunction1.m utilityFunction2.m+computeFunctions/ computeFunction1.m computeFunction2.munit_tests unitTestClass.m test_data/ unitTestInputData.mat unitTestExpectedOut.matmainFunction.mrunAllUnitTests.m
Here is the content of the runAllUnitTest.m:
This basically will run all tests in unit_tests folder
import matlab.unittest.TestSuitesuiteFolder = TestSuite.fromFolder('unit_tests');result = run(suiteFolder);
And this is the content of unit_tests/unitTestClass.m:
classdef computeFunction1Test < matlab.unittest.TestCase methods (Test) function testCase1(testCase) [input1, input2] = load('test_data/unitTestInputData.mat') act = compute.computeFunction1(input1, input2); exp = load('test_data/unitTestExpectedOut.mat') testCase.verifyEqual(act, exp) end endend
When I run runAllUnitTest.m I get the following error:
Undefined function 'compute.computeFunction1'
I suspect that at the time of execution, working directory is /unit_tests and therefore not recognizing compute directory and functions in the directory.
Is there a way to keep the current directory structure and make the unit test work?
Best Answer