You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Modelica 3.5的TestCase注解在Dymola/OpenModelica的使用问题

Modelica 3.5 TestCase注解在Dymola/OpenModelica中的使用方案

你遇到的问题是因为TestCase注解并非直接修改常规模拟的行为,而是专门为工具的测试框架设计的,直接点击模拟按钮不会触发它的逻辑。以下是在Dymola和OpenModelica中正确使用的方法:

测试代码回顾

model Test
  Boolean a;
equation 
  a = time < 0.5;

  assert(
    a,
    "test has failed: time is above 0.5",
    level=AssertionLevel.error);
  annotation (TestCase(shouldPass=false));
end Test;

Dymola中的正确用法

  • 要求Dymola版本≥2022(Modelica 3.5发布后,该版本开始完善支持TestCase注解)
  • 必须通过Dymola的测试框架执行,而非常规模拟:
    1. 在Dymola的脚本窗口中调用测试函数:
      DymolaCommands.Test.runTest(Test, shouldPass=false);
      
    2. 框架会识别TestCase(shouldPass=false)的设置,允许断言失败,不会终止测试流程,同时会记录该测试"预期失败"的结果。

OpenModelica中的正确用法

  • 要求OpenModelica版本≥1.19.0(该版本开始逐步兼容Modelica 3.5特性)
  • 需要使用OMTest工具执行测试:
    1. 命令行方式:
      omtest -m Test -shouldPass false
      
    2. OMEdit图形界面方式:
      打开模型后,通过菜单栏Tools → Run Test Case执行,工具会自动读取TestCase注解的参数,忽略断言失败并标记测试为"预期失败"。

关键注意点

  • TestCase注解仅作用于测试场景,不会改变常规模拟的断言行为,直接模拟时断言仍会触发错误。
  • 务必使用对应工具的最新兼容版本,旧版本可能未完全实现Modelica 3.5的TestCase规范。

内容的提问来源于stack exchange,提问作者AngeliqueR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:02:03