Differences Between the Execution of TestStand LabVIEW Test Steps with the LabVIEW Runtime Engine vs. Development System

Updated Dec 16, 2020

Reported In

Software

  • TestStand
  • LabVIEW Runtime

Issue Details

When running a TestStand sequence with LabVIEW test steps using the LabVIEW Runtime Engine, my code behaves unexpectedly compared to running with the LabVIEW Development System. This issue may show up when deploying the test sequence on systems where only the LabVIEW Runtime Engine is available.

As an example, a LabVIEW VI test step with dynamic paths throws Error 7 - File not found when using the LabVIEW Runtime Engine. This does not happen when using the LabVIEW Development System Adapter for test step execution. Here, the test sequence and LabVIEW test steps execute as expected.
 

Figure 1 - Switching the LabVIEW adapter in TestStand

To get to the configuration dialog, select the TestStand menu options Configure ➔ Adapters...

Solution

The LabVIEW Runtime Engine behaves differently from the Development System on several occasions that apply to TestStand as well.

One example is the Application Path-VI. When used in LabVIEW test step executed by the LabVIEW Development System, it will return the path to the folder containing the VI. When the LabVIEW Runtime Engine is used, it will return the path to the Caller Executable in the TestStand Application directory, i.e. C:\Program Files (x86)\National Instruments\TestStand 2019\Bin. Similar behavior applies when compiled LabVIEW code is called.

This will lead to invalid paths when external resources are referenced.

To amend the issue, please adapt your LabVIEW code to behave consistently. In the case of the Application Path, consider replacing the Application Path-VI with a String-Control that gets its path-string passed from TestStand. Alternatively, replace the Application Path-VI with the Path-Property of the calling This VI object.

Observe the different paths returned when the VI is called using the LabVIEW Runtime or Development adapter. The example VI below and a TestStand sequence are included in the files section.

Additional Information

Please compare the results of the attached demo TestStand sequence TS_LV_Path_Demo_TS2019_32b.seq for further clarification.The Path_Demo.vi called by the TestStand sequence returns the currently used LabVIEW Adapter and paths generated by multiple methods:

  • using Application Path-VI
  • using the This VI >> Path property
  • a path string passed by TestStand

 

Example #1 - VI Paths returned with different methods
Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project. To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram.
 
 
 
Executing the same LabVIEW VI from TestStand using the LabVIEW Develepments ystem (top) and the LabVIEW Runtime Engine (bottom).Note the different outputs of the "Application Path"-VI. The VI-Path-property remains unchanged. The external path was passed from the RunState.SequenceFile.Path TestStand property.​​​​

 

Attachments