The Model Testing Toolkit is a platform for creating, executing and automating tests of Modelica models. It is designed to handle the increasingly complicated task of developing models and libraries for both a single tool as well as multiple tools and even cross-testing (compilation and simulation performed on different tools).
Creating tests have never been easier. The Model Testing Toolkit comes with an easy-to-use graphical user interface for test creation and local execution. The interface has been developed in cooperation with the Modelon library developers to make sure that it is suited for its purpose. In addition, there are conversion scripts for quick generation of test suites directly from Modelica code.
The automation of tests is also key to allowing the modeler to advance forward while not spending too much time on executing tests. The Model Testing Toolkit comes ready to integrate with continuous integration platforms, with a detailed guide for setup on the Jenkins platform.
The Model Testing Toolkit also acknowledges the need of custom solutions; therefore, it also ships with a powerful scripted framework. The scripted framework allows for custom tests to be set up using the easy to learn and widely used language Python (version 2.7).
The executable typically created from Modelica models is an FMU (Functional Mock-Up Unit). To make sure that a model is distributable in an organization, the compiled FMU needs to be tested on all required platforms. The tool-agnostic approach of the Model Testing Toolkit allows for easy creation and running of such cross-platform tests.
The scripted framework of the Model Testing Toolkit allows for connections to in-house FMI tools. The Model Testing Toolkit allows for testing of FMI tools using Modelica Libraries and Modelica Compilers.
The Model Testing Toolkit has been proven successful for creating and running tests during the development of all Modelon libraries. This is a challenging use case where 15-20 libraries need to be supported on multiple platforms with multiple versions.