在并行模式下运行测试时,如何解决缺少的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文件。

因此,当并行运行时,他们不需要创建任何新文件,他们可以使用已有文件或更新文件。

自更改以来,我一直没有任何问题。由于重复测试,因此运行时间更长。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...