繁体   English   中英

单元测试 Modelica 组件库?

[英]Unit testing Modelica component library?

我正在 Modelica 中创建一个组件库,并希望对单元测试包的技术提供一些输入。

到目前为止,我有一个测试包,由一组模型组成,每个组件一个。 每个测试模型实例化一个组件,并将其连接到一些非常简单的帮助类,这些类提供必要的输入和输出。

在 OMEditor 中以交互方式使用它时,这很好用,但我正在寻找具有通过/失败标准等的更自动化的解决方案。

我应该开始编写 .mos 脚本,还是有其他/更好的方法?

谢谢。

我喜欢 Openmodelica 测试结果的外观,请参阅

不过不知道他们是怎么做的。 显然已经完成了某种回归测试,并存储了以前的结果,但不知道这是来自某个测试库还是自制的。


总的来说,我觉得有点悲哀/次优,没有每个人都可以/应该使用的“唯一”测试解决方案(参见 Python 生态系统中的鼻子或 pytest),相反,每个人似乎都在制定自己的解决方案(或尝试),而您发现的只是一些 Modelica 会议论文(通常没有实施的痕迹)或未维护的未知状态的图书馆。

在我的脑海里,我发现/知道(有些已经在这里的其他答案中链接了)

这似乎是https://xkcd.com/927/的病理性实例。 对于(非开发人员)用户来说,几乎不可能知道选择哪些,哪些实际上是好的/可用/可用/...

(不是真正的测试,但也相关:使用 ANTLR 进行解析和语义分析:modelica.org/events/Conference2003/papers/h31_parser_Tiller.‌ pdf)

编写.mos脚本是一种方法,但 Michael Tiller 还提供了一个小型的概念验证库: XogenyTest ,您可以将其用作基础。

我更喜欢使用.mos脚本,当您将测试框架进一步集成到持续集成工具中时,它可以很好地工作。 BuildingPy 就是一个很好的例子,虽然它没有在 CI 工具中实现,但它仍然是一个很好的工具。

这是一个好的框架设计的参考: UnitTesting: A Library for Modelica Unit Testing

如果您有 Mathematica 和 SystemModeler,您可以从 Mathematica 运行模拟并使用VerificationTest “函数”进行测试: VerificationTest[Abs[WSMSimulate["HelloWorld"]["x", .1] - .90] < .01]

然后可以在TestReport[]模拟多个测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM