如何解决在并行模式下运行测试时,如何解决缺少的Simulink仿真技巧问题?
我有29个Simulink / Matlab测试。它有很多不同的参考模型。在运行20秒模拟之前,它必须加载所有参考模型并在工作文件夹中创建许多模拟工件。测试之间共享许多参考模型。
当一次运行一个测试时,我没有问题,所有模拟工件都已创建并用于运行各种模拟。一切顺利。
通过并行处理运行所有程序时。我有一个问题,没有构建或缺少某些仿真工件,因此甚至在运行之前我的仿真就失败了,但令人惊讶的是,并非全部29个都失败了。它实际上是随机的,上一次是17,另一次是22。甚至以0失败运行了一次。
另一个说明,我只有在Azure管道上的自托管计算机上出于CI目的运行它时才会遇到此问题。
我想解决此问题,并在并行运行时一次运行一次,通过时获得稳定的测试通过/失败结果。我该怎么办?
错误:
2020-11-03T03:16:27.1083996Z Making simulation target "Foo_src_sfun",...
2020-11-03T03:16:27.1084227Z
2020-11-03T03:16:27.1084361Z
2020-11-03T03:16:27.1084502Z
2020-11-03T03:16:27.1084789Z Microsoft (R) Program Maintenance Utility Version 14.00.24210.0
2020-11-03T03:16:27.1085188Z Copyright (C) Microsoft Corporation. All rights reserved.
2020-11-03T03:16:27.1085441Z
2020-11-03T03:16:27.1085815Z NMAKE : fatal error U1052: file 'Foo_src_sfun.mak' not found
2020-11-03T03:16:27.1086175Z Stop.
2020-11-03T03:16:27.1089399Z ================================================================================
2020-11-03T03:16:27.1089936Z Error occurred in TestSim/testSim(File=test_FooTest1_slx) and it did not run to completion.
2020-11-03T03:16:27.1090308Z
2020-11-03T03:16:27.1090497Z ---------
2020-11-03T03:16:27.1090720Z Error ID:
2020-11-03T03:16:27.1090946Z ---------
2020-11-03T03:16:27.1091254Z 'Slvnv:simcoverage:SimulationFailed'
2020-11-03T03:16:27.1091481Z
2020-11-03T03:16:27.1091669Z --------------
2020-11-03T03:16:27.1091919Z Error Details:
2020-11-03T03:16:27.1092186Z --------------
2020-11-03T03:16:27.1092419Z Error using cvsim
2020-11-03T03:16:27.1092659Z Simulation failed
2020-11-03T03:16:27.1092864Z
2020-11-03T03:16:27.1093112Z Error in testRunner (line 145)
2020-11-03T03:16:27.1093477Z [cvdo,simOutRes] = cvsim(testObj,paramStruct) ;
2020-11-03T03:16:27.1093765Z
2020-11-03T03:16:27.1094034Z Error in TestSim/testSim (line 30)
2020-11-03T03:16:27.1094373Z [cvdo,simOutRes,ErrLog] = testRunner(File,20);
2020-11-03T03:16:27.1094638Z
2020-11-03T03:16:27.1094830Z Caused by:
2020-11-03T03:16:27.1095168Z Error using autobuild_kernel>autobuild_local (line 219)
2020-11-03T03:16:27.1095612Z Unable to create mex function 'Foo_src_sfun.mexw64'
2020-11-03T03:16:27.1096006Z required for simulation.
2020-11-03T03:16:27.1096427Z ================================================================================
更新:
我发现我还有另一种错误,几乎导致了相同的结果。
2020-11-03T03:18:36.1668328Z Making simulation target "Foo2_src_sfun",...
2020-11-03T03:18:36.1668601Z
2020-11-03T03:18:36.1668735Z
2020-11-03T03:18:36.1669087Z 'Foo2_src_sfun.bat' is not recognized as an internal or external command,2020-11-03T03:18:36.1669483Z operable program or batch file.
2020-11-03T03:18:36.1669685Z
2020-11-03T03:18:36.1669892Z >>Removing MiL paths...
2020-11-03T03:18:36.1670104Z >>Done
解决方法
我做了一个runSingleTest(),在并行运行之前运行了它。在运行之前,它会在** / work / sim_artifact文件夹中创建所有必需的模型参考mexw64文件。
因此,当并行运行时,他们不需要创建任何新文件,他们可以使用已有文件或更新文件。
自更改以来,我一直没有任何问题。由于重复测试,因此运行时间更长。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。