我正在使用 MATLAB xUnit 来测试一些代码。我希望能够直接调用某些包含在
以下是一个简单可复制的设置: 创建一个项目目录,其中包含两个文件夹
在
在“private”目录中放置一个函数。
在
现在切换到测试目录并调用
private
目录中的函数。以下是一个简单可复制的设置: 创建一个项目目录,其中包含两个文件夹
code
和 test
。在 code
中创建一个名为 private
的子目录,这样你的目录树看起来像这样:project_root
code
private
test
在
code
目录中放置一个函数。function y = main()
y = sub();
end
在“private”目录中放置一个函数。
function y = sub()
y = 123;
end
在
test
目录中放置一个函数。function testsub()
assertElementsAlmostEqual(sub(), 123);
end
现在切换到测试目录并调用
runtests
。你应该会看到一个错误,提示sub
未定义。
private
目录不允许在matlab路径上,因此这不是一个选项。可能可以将一个函数放在code
目录中,以检索所有私有函数的句柄,但这似乎有些繁琐。
如何最好地获得访问私有函数的权限?
编辑:
进入私有目录的想法存在问题。理论上,我可以调用,例如:
cd(privateDirectory);
suite = TestSuite.fromName(testDirectory);
suite.run
不幸的是,测试框架在调用 run
后立即导航到包含测试的目录。