的执行目录/ rmpath savepath在一个工作区影响其他工作区吗?

3视图(30天)
的执行目录/ rmpath savepath在一个工作区影响其他工作区吗?
假设我有两个实例的MATLAB运行在一台笔记本电脑。在其中一个我可能做的 之一 以下。
  1. 目录(PATH_FOO)或rmpath (PATH_BAR)
  2. 目录(PATH_FOO)或rmpath (PATH_BAR),然后savepath
  3. 编辑pathdef。(当然,这不是建议手动编辑这个文件,但我们是残酷的…),添加PATH_FOO或删除PATH_BAR,然后保存pathdef.m
问题:
  1. 谁的这些行为影响其他工作区,迟早的事吗?
  2. 更普遍的是,什么样的命令,我们在一个工作区执行会影响其他工作吗?
  3. 如果我跑只有一个实例的MATLAB,但调用parfor和两个循环运行并行循环吗?的执行目录/ rmpath savepath循环影响其他循环,迟早?一般来说,什么样的指令并行执行在一个循环会影响其他循环吗?
动机:想象你正在开发一些包,你想测试多个版本的这个包multipe MATLAB的实例。每个测试可能做一些像目录、rmpath savepath等等。下面是一个伪代码这样的情形。
% MATLAB实例1
测试(package_directory_of_version1);
% MATLAB实例2
测试(package_directory_of_version2);
函数测试(package_directory)
setup_package (package_dirctory);
test_package;
%下一行卸载包:添加删除路径
% setup_package和删除编译后的墨西哥人文件等。
uninstall_package (package_directory);
结束
函数test_package
TEST_THE_MEX_FUNCTIONS_PROVIDED_BY_THE_PACKAGE;
%的函数提供的包是可见的,谢谢
%的“目录”和“savepath”“setup_package”。
结束
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%这是包的源代码,您正在开发。
%这应该称为黑盒测试。
函数setup_package (package_dirctory)
墨西哥人(FORTRAN_SOURCE_CODE_IN_PACKAGE_DIRECTORY);
目录(PATH_TO_THE_MEX_FUNCTIONS_PROVIDED_BY_THE_PACKAGE);
savepath;%使包在后续可用MATLAB会话
结束
当然,你要确保测试不会互相影响。 假设测试不共享任何数据或源代码。
非常感谢你们任何的评论和见解。 感谢如果你能告诉我相关的部分在MATLAB的官方文档 documention——我做了一些搜索,但没有发现一个回答我的问题。
顺便说一句, 如果你相信伪代码描述的测试是错误的/坏的方式进行 ,我将非常感激如果你能推荐一个更好的方法。

答案(1)

史蒂文的主
史蒂文的主 2022年3月3日
国际海事组织唯一的测试应该被调用 savepath 的测试吗 savepath 函数本身。你不应该写测试:MathWorks测试功能。
如果你需要操作的MATLAB路径在一个测试文件,你写我建议你创建和应用基于类的测试 夹具 ,特别 matlab.unittest.fixtures.PathFixture 。它将MATLAB处理将文件夹添加到搜索路径时应用和恢复时的搜索路径到先前的状态 PathFixture 是拆除在测试结束时,无论测试通过,失败,或在执行期间的错误。
1评论
Zaikun张
Zaikun张 2022年3月3日
非常感谢你 @Steven主 非常迅速的反应。
>国际海事组织唯一的测试应该被调用 savepath 的测试吗 savepath 函数本身。你不应该写测试:MathWorks测试功能。
完全同意。我没有打算测试 savepath 。也许我的问题没有足够清晰的测试场景。我有编辑我的问题包括一些伪代码。我希望现在是清晰的。
>如果你需要操纵MATLAB路径在一个测试文件,你写我建议你创建和应用基于类的测试 夹具
非常感谢你的指导 夹具 现在,我调查。与此同时,你认为我的问题描述的测试场景符合相关的测试框架 夹具 吗?
非常感谢!

登录置评。

类别

找到更多的在测试框架帮助中心文件交换

s manbetx 845


释放

R2021b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!