Continuous integration

Hey all, new to the forum but have been developing with JUCE for about 4 months now

Have any of you been using continuous integration testing for your JUCE based software? I’ve started using GitHub actions to compile cross-platform and run unit tests. It covers the base classes of my plug-ins, but I haven’t found a good way to test the AudioProcessor layer via some kind of virtual DAW. Is there a way to approach that which other people are using? I do manual testing in a variety of DAWs and then my daily driver (Ableton), but it would be nice to have some automation there.

1 Like

For a start you can run the plugin through pluginval. It also works headless on CI, and will test a lot of generic edge cases and such. If you build pluginval yourself, you can also add your own tests specific to your products, I think.

1 Like

This is great, thanks! Easy to setup and already found issues.

I highly recommend CMake’s testing tool CTest. It’s a test harness and you can register anything executable as a test – meaning you can run unit tests, pluginval, the Steinberg validator, and any other custom scripts or checks you can come up with all with one command, and you get a nice breakdown & dashboard of all your tests.