Automated Testing


#1

I wonder if anyone has exerience doing automated testing of Juce plug-ins.  I'm think of using a modified version of the Juce PlugIn Host to open my plug-in, load some presets and compare the processed output to a known output.  This way if I introduce a bug in the processing the test will flag that something is different in the output.  I'd like this to be automated so I just need to run a commandline script, either manually or from a build script.

It would also be cool to have some degree of plug-in validation like occurs with the AUVal app for AudioUnit plug-ins.  I was thinking it would make sense for that to be an open source project, so we could all add to it, unless  Jules wants to take that on.

Thoughts?

 


#2

Today i desperately need something like it, that will be amazing.

+1

If you do that, ill do a php front end to assign jobs and stuff.


#3

You could make your own UnitTest and TestRunner in order to launch the tests logged into files and then compare those files against known outputs. That's currently what i do in my project. 


#4

Currently developing a "plugin Monkey Tester", modelled after Android Monkey.

It may clicks on every button randomly, load/save preset, kills/yanks the UI, and while doing all this checks the output signal quality.

 

My needs have more to do with synthesizers but I could adapt it. I will publish the code on Github soon anyway.


#5

Cool, let us know when you have something to share.


#6

We all desperately need something like Android Monkey or the automated testing available in Qt.

I know I am late but did you get any progress/need any help with this?


#7

Yes it would be good to have some support for this in JUCE… its been mentioned before, but AFAIK there isn’t an easy way to do this, apart from simulate button presses… Would be great to have an extra layer to simulate mouse and keyboard events to use with a built in or 3rd party testing framework.

For single developer small to medium size projects its not such a big deal, but for larger teams and projects it can save a lot of time and headaches…!