With XJTAG 3.11 we’ve made a few improvements to the .NET XJRunner integration and our LabVIEW VIs.
Most notable is the addition of the new GetResultsFromTest method to the Runner object. This method allows you to retrieve, for a given test, run information from the last test run. It returns a collection of TestResult objects, one for each loop made by the test. This TestResult object has three properties; Result is the integer result returned by the test, Output is the text output generated by the test, and TimeTaken is the time taken to run the test. This new feature allows for results and text output to be easily retrieved on a test by test basis, rather than having to deal with extracting sections from the full text output or handling the FunctionFinished and TextOutputGenerated events yourself.
We’ve also made a few changes to our LabVIEW library and examples projects. The Run.vi and Run Project.vi now contains an additional connector node called Test Results. This node returns the complete list of results from the test run using only LabVIEW data structures. This is an array of clusters, with each cluster containing named elements for Test Name, Group Name, Result, Text Output and Time Taken (as a string in milliseconds). This makes the new functionality readily available for existing LabVIEW projects, without you having to deal with any of the .NET yourself. Alternatively, if you are not using either of these VIs in your project, the functionality to retrieve the full list of results is available through the GetAllResults.vi sub-VI. The use of this new functionality is demonstrated in the new example, XJTAG Get Results From Last Test Run.vi.
Finally, we’ve added an additional LabVIEW example to the examples project, XJTAG Using Events.vi. This example demonstrates use of the .NET events on the Runner object to create a more event-driven, asynchronous program. This allows for real-time handling of text output and results, with UI updates as individual tests finish, as well as demonstrating custom implementations for handling XJEase input and message boxes without the XJtagOutputBox.