NI TestStand Idea Exchange

Community Browser
Showing results for 
Search instead for 
Did you mean: 
Post an idea

When building any type of distribution it would be nice to have the following actions


1) Pre-Image Build Script -> Execute windows command or batch file

2) Post-Image Build -> Execute windows command or batch file 

3) Post-Distribution Build -> Execute windows command or batch file 


The purpose of the three entry points is to allow the user to preform actions of their choosing.


Action #1 is to be run just prior to Starting Analysis to allow the user to preform any automated actions prior to analyzing the build project.

Action #2 is to be run after the deployment image structure and all files are created on disk but before the distribution package is create. The purpose of this action is to allow the user to inject any files, update files, preform verification or hashing and so on. In my specific use case, I need to create a file that has relative paths and a hash value for each file being deployed. This process is automated but currently run manually prior to a package build.

Action #3 is to be run after the Distribution package is made. Automate any file steps such as uploading the file to a network location, or generating an automated email.


Each action should call the script with parameters such as path info, deployment name or provide a list of variables that users can choose to have added to the command line for each action.


If the action script or command returns a non-zero value the Build process should terminate.


Re-Posted from (



Many SW-Tool providers have realized that how comfortable it is for a programmeruser to work with dark backgrounds. Microsoft did it in 2013 for visual studio and now browser companies are doing the same. Unfortunately, I can Change background color of MAX and TestStand. This makes longer working painful for eyes.


An example of such a bakground is attached with the message.


Such a feature will improve ergonomics.


Thank you



I think it can a be a really good idea to review and give feedback on all Idea exchange.


You ask us to give feedback but you don't finish the loop.


Some idea are mark as new for many years now...

Modifying names in interface are never good idea, but some times it is must.

No matter is the change made in LabVIEW Front Panel or in TestStand type cluster mapping. Or the cluster type is changed for some other reason. The changes needs to be applied in LabVIEW module call parameters.

When you have multiple sequence files and multiple calls to same VI or with same cluster type in each of them, you would not really want to go trough the steps one by one.



- Cluster mapping changes apllied with LabVIEW Protorype reload

- Cluster mapping changes applied to hole sequence file or/and to all same VI calls in the sequence file

- Need of cluster mapping change applying notified with Analyzer

TestStand File Diff and Merge Utility has the ability to produce reports in XML format with a slew of dependencies on TestStand (stylesheets, button images, etc.) making them not very portable.  Yes, I know they can be packaged with the extra utility, but that's a hassle too.  Now instead of managing a file I have to manage a folder of files.


Additionally, these reports only seem to work with Internet Explorer which I'm hearing is going away. Not sure if it's just me, but Edge's IE mode doesn't seem to work for these reports either.


Can NI do something to address this?

  • Make a browser extension that works with at least chromium based browsers.
  • Figure out a nice PDF format.


Ideally, I want to upload the file type into my code review platform of choice (git, perforce swarm, crucible, network folder share, etc.) and not require my reviewer to have TestStand installed on their machine.

when manipulating data between different system, JSON string are very usefull to have a standardize, simple and readable exchange format.


Python or LabVIEW can dump structure (dictionnaires or Cluster) to JSON and vice versa.

It can be very usefull to allow to dump a TestStand variable or container to JSON and vice versa.


It can be good to have also a way to have native function in string functions to read, write or add a specific value in a JSON string.



When user opens the Offline Processing Utility and at the same time starts to type on the keyboard the user can accidently rename the profile.

(Attached a screen-recording to visualize)

It would be great if there was no selected row or column when starting/opening ORPU. The renaming of the profile disturbs the production since the database logging will not work as expected.


When we start ORPU we already have the '/tray' enabled but somehow its still possible to accidently rename the Profile.

It would be nice to have an Auto-populating folder option for TestStand projects much the same way that LabVIEW project do.  


Folders added to TestStand projects are snapshots of the folder's contents when added.  Any files added to the folder on disk afterwards are not marked for inclusion with the deployment at analysis time.  This behavior is fine as a default.


However, there are times when you do want to automatically include all files in a folder.  Having an auto-populating folder option would mark the folder and all its contents for inclusion automatically with the deployment at analysis time.  After analysis is over the user could still choose to uncheck any files they wish before selecting the build button.


From version to version, it's only natural that developers will be adding new files to established folders.  Since the TestStand project doesn't aid in development activities, it's easy for folks to forget to add files while they're developing.  We often have a faulty build or two with each release because necessary files aren't making it into the build.  We ultimately have to delete the folders in the project and re-add them, then go through the hassle of fixing the paths and included files. An auto-populating folder option that integrates with the build utility would save us time and headaches.


TestStand File Diff and Merge Utility is not very useful for code reviews on its own.  It seems adequate for notifying the user that a sequence was added, however from the tool itself the user cannot actually review the newly added or removed sequence's contents.  Why is there no + on the item tree to go deeper.



If I have to right-click a sequence and select "Go to location" then why bother with the separate tool to begin with?  Why isn't the diff utility integrated into TestStand's sequence editor itself?  Seems like a side-by-side comparison within Sequence Editor would allow a reviewer to poke and prod around all the hidden settings that are often missed using the existing utility.


In order to keep file clean, sequence analyzer helps in finding "potentially unused variables". To delete such variables, each warning in sequence analyzer result has to be double clicked and then delete has to be pressed to finally remove that variable.


In many cases with large sequence file, there could be dozens of unused variables and in a single work-space there are dozens of .seq files.


Is it possible to provide a button or some option to remove all unused variables from a sequence file?

Almost all of our analog measurements are specified in %: example


a Power Supply DMM measurement limit is 24.00Vdc +/- 5%


We typically have 100+ measurements like this in a project



Why not include it in the default step types as an optional selection?

I sure would use it, so would my team.


I agree that it should not alter existing programs using the default step, but I believe that this feature should have been in Teststand when it was first released.


I have run across this in both analog measurements, and the results from an ADC

Think a limit of 0x234 +3%, -7%



Forgive me for the cavalcade of suggestions this week...


One of my favorite options in the LabVIEW development environment is the "Find all Instances" context menu option, whereby one is able to locate all calls to the particular SubVI.


I have long wished that something similar were available in the TestStand Sequence Editor. I'd like to propose a "Find All Sequence Calls" context menu selection when right-clicking on a sequence in the Sequence pane. This could leverage the Find tool, but save the user from copying and pasting the name of the sequence. (And save the user from configuring the search options to narrow down the results) It'd be nice to be able to define the scope of the "find" operation to either the selected sequence or all sequences in memory, but I'd settle for a simple search of the open sequence.




Mr. Jim





I have noticed that the TestStand shipping examples are often overlooked when looking for ways to accomplish things with TestStand.  This is not the case (as much) in LabVIEW and CVI, and I feel that this is because TestStand does not have an example finder.  I would like to see some method of accessing the shipping examples through the sequence editor environment, such as:



Another problem with the current setup is that the only way to know what the example demonstrates is the name of the folder.  This makes it easy to overlook examples that would be helpful. 


I propose adding a TestStand example finder with these features (in order of importance):


  • Provide a description for each example (most of this info can be pulled from the sequenceFileLoad callback dialogs in a lot of the examples)
  • have keywords for the examples, and allow searching
  • for more advanced examples, provide a batch file to load all necessary components 
  • Provide links to the NI community and developer zone to encourage participation



CSV Input Stream allow to parse CSV files to input data into a Stream Loop for instance. By default, the separator is a comma (,). I use a non english version of Excel to edit a CSV file, and every CSV format write a semi-colon as separator (;):



Using an expression, I am able to dynamically (at run-time) change the property SeparatorChar:

Locals.MyInputStream.AsCsvFileInputRecordStream.SeparatorChar = ";"


I think it could be more convenient to have a direct access to this parameter in the configuration pane, allowing also to check the content of the file  before execution with Parse Record Prototype funtions.


Best regards,

The property loader step allows the source location to be defined via an expression.  However, if that expression does not evaluate to a file on disk at compile time you get an error.  This isn't always desired behavior, for instance, when used in a plugin architecture.




The current workaround is to include a dummy file which could unnecessarily complicate the software & deployments.  A dummy file also has the potential to mask errors that should be presented to the user. 


The only validation TestStand does of the property loader source location file is that it exists.  It doesn't do any validation on the file contents.  So is there any benefit?  TestStand properly throws an error if the expression doesn't evaluate to a valid file.


Alternatively, a developer could deselect the sequence analyzer rule "Property Loader source should be proper", but this would disable it for all analysis not just the ones that use expressions



I have a table in file globals (2D array).

Each column of the table has an associate variable in file global.

For i want my custom step to run N time which is the number of rows in the table.

In each iteration, i want to take each value of the row and assign the value to the asscoiated variable in file global.

so, i want to have a looping mechanism in the expression.

I guess it is not explicitly present right now. Right now, i use teststand API to update the variable.

It would be nice to have looping in expression. This will improve my custom steps performance.



Muthuraman S

NI has gone through a lot work to get the IVI Components integrated within TestStand as step types. I was wondering why NI has not incorporated the NI-DAQmx technology into TestStand as step types. I realize most TestStand developers would just create TestStand Adapters in the sequence step written in CVI or LV to interface to NI-DAQmx functions. Even the more advanced TestStand Developers would create their own custom step types to interface to NIDAQmx. I have just done that to where I have created a framework of custom DAQmx step types that I use as a small subset from all the NIDAQmx functions used from the NI-DAQmx library. 

Add feature to allow commands and sequences created in Tools->Customize->Customize Tool Menu->Add Tools Menu Item.
When customer creates a command or sequence in this section he would like to put it in the toolbar for quick access , TestTand does not allow this task. TestStand allows the toolbar customization for items that are TS native basically

Currently, to export properties which are part of an array, such as the limits of a multiple numeric limit test, you have to specify each index of the array separately, like in the first screen shot, or else you get all of the raw XML, which is difficult to interpret and use. 







This is both labor intensive and unituitive. . If instead we had the option to export the array with the "?" and have it parse the information out like in picture 1, it would be much simpler to use.




Kyle Mozdzyn

Applications Engineering

National Instruments 

It would be nice to be able to create a new sequence from highlighting steps in a sequence and performing a right mouse click, "Create New Sequence...", this would be a kin to Create SubVI in LabVIEW.


This action could display a dialog to give possible options such as, to copy the Setup and/or Cleanup group, Create in a New SequenceFile or in Current SequenceFile, the option to Move or Copy highlighted Steps. It could also include creating any locals and /or  FileGlobals (if creating in a new SequenceFile) used by those highlight steps.