我正在使用MATLAB xUnit来测试一些代码。我希望能够直接调用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
目录中放置一个函数来检索所有私有函数的句柄,但这似乎很hacky。
访问测试私有功能的最佳方法是什么?
编辑:
导航到私有目录的想法有问题。理论上我可以打电话,例如,
cd(privateDirectory);
suite = TestSuite.fromName(testDirectory);
suite.run
不幸的是,一旦您调用测试框架,它就会导航到包含测试的目录run
。