首页 > 解决方案 > Simulink Design Verifier:输入参数 #1 是无效的 cvdata 对象

问题描述

我正在尝试在Matlab 2020a上的一个非常简单的 Simulink 模型上运行一些测试。我通过使用测试管理器应用程序获得了测试结果,它允许我设置测试用例。我创建的函数很简单,它只是检查两个布尔值,并根据自己的值返回另一个布尔值,所以我在这里没有报告。

我的程序如下:

从 Simulink Test Manager -> New Test File -> Test For Model Component -> Importing both Top Model and Component to create a Harness -> Using Design Verifier options(与默认值相比的唯一更改是 (1) Test Generation ->模型覆盖目标:MCDC;和 (2) 报告 -> 生成结果报告)和 IMPORTING 测试工具输入作为源 -> 使用测试输出下的组件作为基线 -> 将数据保存为 Excel 工作表。然后生成测试,一切正常。然后我使用一个小的 python 脚本来编辑 Excel 文件,生成一个具有如下结构的 Oracle:

time   Var_A        Var_B       time       Out1:1
                                           AbsTol:0
       type:boolean type:boolean           Type:int8
       Interp:zoh   Interp:zoh             Interp:zoh
0          0            1           0          0
0.4        1            1           0.4        1
0.8        0            0           0.8          TRUE

在这之后,我必须让 Simulink 写一份项目的 PDF 报告。为此,我设置了以下选项:

从测试工具:输入 -> 在测试结果中包含输入数据;在最后一个时间点停止模拟;基线标准 -> 在测试结果中包含基线数据;覆盖率设置 -> 记录被测系统的覆盖率;记录参考模型的覆盖率;

从顶层测试文件夹:Coverage Settings -> Record coverage for system under test;记录参考模型的覆盖率;覆盖指标:决策;健康)状况; 中央疾控中心;测试文件选项->在执行结束时关闭所有打开的图形;执行后生成报告(带有作者和文件路径);包括 Matlab 版本;结果:所有测试;测试要求;标准和评估图;模拟元数据;错误日志和消息;覆盖结果;文件格式 PDF。

然后我让它运行。测试经理告诉我一切都很好,但由于某种原因,每当它必须创建报告时,它都会向我抛出一个错误:

X_component_test: Input argument #1 is an invalid cvdata object. CVDATA objects become invalid when their associated models are closed or modified

现在,我确信这在使用更复杂的组件之前可以正常工作,但我不知道我在这里做错了什么。有人有线索吗?

标签: matlabunit-testingcode-coveragesimulink

解决方案


最后,解决方案比我想象的要简单得多。只需删除所有 .cv 文件并清理项目文件夹中的所有测试文件或不必要的文件。当存在太多时,Matlab 似乎有问题。此外,必须修改脚本以删除该 TRUE 值并将其替换为 1。


推荐阅读