LVOOP sounds well suited for this plugin architecture if you're using 8.2. You can have all your tests inherit from one generic test. Then dynamically at run-time choose which object to load and the Dynamic Dispatch terminals will automatically run the right test cases. Creating new tests simply involves inheriting extra objects from the generic parent test. You don't need to change your test framework at all!
If you don't have LV8.2, or you don't want to go in that direction, then there are a couple other simple possibilities that I see. You can use VI Server to dynamically load and execute a VI based on a path. So your user will chose a test, then your test framework loads the appropriate VI or set of VIs and executes them. The catch here is that all test VIs must have the exact same connector pane if you are going to use a Call by Reference Node. Polymorphic VIs allow for slightly different connector panes.
Finally, the most brute-force way to do this would be simply to create a number of test VIs and name them all the exact same thing, but put them in different folders. For instance, suppose all your test VIs are called foo.vi. Then write a batch file (or a LV VI) that would copy the correct version of foo.vi into the main test framework VI's directory (before the test VI has been opened) and overwrite whatever version is there. Your batch file or VI could then load the test framework VI, which would in turn load foo.vi from its own folder. It wouldn't have any clue that this may or may not be the same version of foo that it used to link to. As long as the connector panes for the foos are all compatible, the test framework VI won't complain. This would allow your customers to create custom flavors of the test program.
Message Edited by Jarrod S. on 03-29-2007 02:31 PM
Jarrod S.
National Instruments