Testing is an important part of software development process.
We introduce three open source tools to facilitate testing MIDI applications.
midi-test ( https://github.com/jazz-soft/midi-test )
This tool allows to open real MIDI ports (visible by all MIDI applications), and manipulate them via JavaScript: connect, disconnect, emit MIDI messages, monitor the received MIDI messages. Combined with JZZ.jz, it can simulate Web MIDI API as well.
web-midi-test ( https://github.com/jazz-soft/web-midi-test )
This is a fake Web MIDI API. Its ports are not visible by real MIDI applications, so they can be used only from JavaScript code. web-midi-test is useful for writing unit tests that don’t require browser, and for modeling corner cases, i.g.: port is visible but is taken by another application, user allowed MIDI, but did not allow SysEx, etc…
Both midi-test and web-midi-test share the same API that allow running both flavors of the same test.
test-midi-files ( https://github.com/jazz-soft/test-midi-files )
This framework allows producing MIDI files from readable JavaScript code.
All above testing tools have been successfully used by the Open Source community.