TestStand 2019 Changes

Learn about new features, behavior changes, and other updates in TestStand 2019.

Quick Drop Dialog Box

In previous versions of TestStand, you could only insert objects into the TestStand Sequence Editor using mouse clicks.TestStand 2019 introduces the Quick Drop dialog box, an easy way of inserting steps, sequences, and variables directly from a dialog without using mouse clicks.

Marking Sequence Analyzer Messages as Ignored in Sequence Files

The sequence analyzer provides the ability to mark analysis messages as ignored in sequence files. Marking an analysis message as ignored in a sequence file stores the message in the sequence file so that the sequence analyzer does not report the message for subsequent analysis of the sequence file. When you mark a message as ignored, the sequence analyzer now prompts for text that serves as a justification to ignore the message. The sequence analyzer stores the justification text with the analysis message and displays it in the Analysis Results pane when displaying ignored messages.

TestStand Deployment Utility Updates

The TestStand Deployment Utility added the following features:

  • Support for building packages and offline package installers in the 32-bit TestStand Deployment Utility.
  • A fourth field to the deployment version number and package version number in package distributions, using the format X.X.X.X. You can auto-increment the fourth field of the package version after each successful build, allowing you to rebuild packages without changing the major.minor.patch fields of the package version. For MSI Based Installers, the fourth field is not present to maintain compatibility with previous versions of TestStand, and versions continue to use the format X.X.X.
  • Filtering options in the Package Dependencies dialog which allow you to configure the relationship of dependent packages. These options allow you to filter by the visibility level, package type, or specific search text.
  • Support for deploying steps which use the Python adapter. The deployment utility includes any Python files included. TSDU also provides information for what versions of the Python interpreter are required, and what virtual environments are used by steps in the deployment.
  • An option to configure whether code modules of step types are deployed for LabVIEW and LabVIEW NXG. When enabled, TSDU includes code modules in substeps of custom step types you create.
  • Support for deploying files specified in the Override Module settings for LabVIEW steps.

Multicore Scaling Improvements

TestStand 2019 includes extensive optimizations for multicore processors. These improvements can significantly increase throughput for systems with high core counts running short duration tests on multiple UUTs in parallel. Performance improvements depend heavily on the specifications of your system.

PDF Report Generation

TestStand 2019 introduces an option to generate PDF reports which look the same as the report generated through the result processor. The PDF report works for all formats except text. Even if OTF is enabled, PDF reports are generated only at the end of execution (PDF reports will not be generated for intermediate reports).

Navigate to Configure»Result Processing, click the icon in the Options column to launch the Report Options dialog, then select Generate PDF Report.

Data Streams Enhancements

TestStand 2019 adds improved support for the data streams features.

  • Stream Loop Step Type—Define a block of steps that execute for each element in anInputRecordStream. Optionally, you can specify an OutputRecordStream to write a record to at the end of each iteration.
  • CSV Record Prototypes—CSV record streams now support specification of field names and data types. Use record prototypes to automatically map columns in a CSV file to records in a field.

Parametric Sweep

TestStand 2019 adds the Sweep Loop step type to support Parametric Sweep applications. Use the Sweep Loop step type to define a set of sweep parameters and a block of steps to execute for each set of values the parameters sweep over. You can specify the range of each sweep parameter using one of several strategies. The default strategy is Start/Stop/Step. Other strategies include defining the sweep parameter as a constant value or specifying each value in the range using an array. Optionally, you can specify an OutputRecordStream to write sweep parameters (including outputs) at the end of each iteration.

Switching between Packed Project Libraries and VIs

The LabVIEW adapter now allows you to switch between packed project libraries and source VIs without having to reconfigure the step. This makes it easier for you to debug your packed project libraries. In previous versions of TestStand, you would have to reconfigure the step to point to the source VI in order to debug the issues present in a packed project library being called from a TestStand step. Now you can specify the packed project library source in the same step, which allows for seamless debugging. Additionally you can rebuild the packed project library from TestStand without switching to LabVIEW. In order to use this feature, navigate to the Override Module Settings window from the LabVIEW Step Settings panel to specify the source files (Project, VI, Build specification) of the packed project library. This window also provides a per-step override option, which allows you to choose between source VI or packed project library.

In the LabVIEW Adapter Configuration dialog box, you can override the module settings for all LabVIEW code modules to run either a source VI or a packed project library. You can also select the option of automatically building the packed project library. View these options on the Advanced tab in the LabVIEW Adapter Configuration dialog box.

LabWindows/CVI Integration Improvements

TestStand 2019 includes several improvements to the LabWindows/CVI adapter for TestStand that make the programming and debugging experience easier. There are three requirements for using these features:

  • Install LabWindows/CVI 2019.
  • In the LabWindows/CVI 2019 ADE, enable Add NI Type Information resource to DLL under Target Settings»Type Information.
  • Rebuild DLLs that TestStand steps call using the LabWindows/CVI adapter.

Improved Handling of C Structs

Older versions of TestStand required users to manually create objects to represent C structs.This process was complicated, prone to error, and it required users to manually update their TestStand object every time the struct changed.

LabWindows/CVI 2019 embeds information about structs into the LabWindows/CVI DLL and TestStand 2019 can read it. The TestStand LabWindows/CVI adapter now has a Create/Update Data Type button that can automatically generate a TestStand custom type definition to represent the C struct. If the struct changes in the LabWindows/CVI code module, users can update the TestStand type with a click of a button.

Improved Handling of Enums

Older versions of TestStand required the user to manually create enums to match the enums used in C. Enum information is now embedded into the LabWindows/CVI DLL, so users can automatically import and update their TestStand enums. When a function with an unknown enum is selected, the Create/Update Data Type option will appear.

Source Code Navigation

Older versions of TestStand required users to locate the .c file and the LabWindows/CVI project the first time they attempted to step into a LabWindows/CVI code module. LabWindows/CVI 2019 embeds the location of the .c and project file into the LabWindows/CVI DLL. When TestStand loads the DLL, it automatically fills this information into the Specify Module panel.

Pointer vs. Array Ambiguity

In C, pointer and one-dimensional array parameters have the same data type in function signatures. Even if you specify an array parameter using square braces, it is still passed as a pointer. Because C treats both syntaxes identically, earlier versions of TestStand required users to manually select whether a parameter was an array or pointer every time they called a LabWindows/CVI module with them.

TestStand 2019 automatically detects if a parameter is declared as an array using square brace syntax, and automatically defines the parameter as an array in the adapter. If the parameter includes an array size, Test Stand will automatically use that as the array size.

Additionally, users can use the ///OUT syntax to specify a parameter as a pointer. This will allow users to avoid the prompt. For more information, see the following tutorial: Using Source Code Tags to Enhance LabWindows™/CVI™ Code Documentation.

Python Adapter

The Python Adapter provides advanced functionality for calling Python code modules from TestStand. You can use the Python Adapter to complete the following tasks:

  • Execute Python scripts (.py) on disk by:
    • Calling a function defined in a module.
    • Getting/Setting the attributes defined in a module.
    • Creating a class instance.
    • Calling a member function or static function defined in the class.
    • Getting/Setting member attributes or static attributes defined in the class.
  • Execute Python scripts in Python versions 2.7 or 3.6+.
  • Execute Python scripts out-of-process in the CPython interpreter.
  • Convert data between Python and TestStand variables.
  • Store/reuse the Python object in a TestStand variable (Object Reference).

You can also use multiple Python interpreter sessions to perform the following tasks:

  • Execute Python scripts in parallel.
  • Use multiple Python versions, such as 2.7 and 3.6, simultaneously in TestStand.

When you specify a module for a step, the TestStand Sequence Editor displays the Python Module tab. TestStand User Interfaces launch the Edit Python Call dialog box.

Use the Python Adapter Configuration dialog box to configure the Python version and Python virtual environment path to use with the Python Adapter.

Before using the Python Adapter in TestStand, you must install the required version of the CPython interpreter.

Note During installation of the CPython interpreter, you must enable the option for adding the Python path to the environment variables.

IO Configuration Step Types

TestStand 2019 adds IO Configuration step types to control NI Modular Instruments NI-SCOPE, NI-DCPower, NI-DMM and NI-FGEN using InstrumentStudio. You can initialize an IO session, apply an IO configuration to an existing IO session and close an existing IO session for NI Modular Instruments. You can also use the Sweep Loop step type to sweep on the instrument attributes specified by an IO session.

Note To use IO Configuration step types, you must download and install InstrumentStudio and iPXI driver software.

Deprecation of the INI File Format

Configuring TestStand files to save using the INI file format is deprecated in TestStand 2019. Saving files in INI file format will be deprecated in a future release of TestStand. In TestStand 2019, the following user interfaces now restrict you to selecting only the XML or binary formats:

  • The File Format Options dialog box displayed when you select the File tab of the Station Options dialog box.
  • The General tab of the Sequence File Properties dialog box displayed when you select Edit » Sequence File Properties in the Sequence Editor.
  • The Update Sequence Files tool displayed when you select the Tools menu in the Sequence Editor.
Note If you change a file you stored in an SCC system from INI (or XML) to binary, you must update the SCC system to set the file type as binary. Otherwise, the SCC provider might incorrectly process the binary content of the file as white space and produce a corrupt file.

Sequence File API

TestStand 2019 introduces enforcing absolute paths for input parameter for the TestStand API's SequenceFile.Save() and SequenceAdapter.GetSequenceFile() methods. Previously, these methods did not enforce absolute paths for the input parameters.