NI Home > Community > NI Discussion Forums

NI TestStand Idea Exchange

Showing results for 
Search instead for 
Do you mean 
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea
0 Kudos


Before proposal a bit of introduction.

It is not well known feature that we can name the containers. This feature can be very useful if we consider naming the array elements. Using it we can access array elements not by index but by the name we give them.

To illustrate this feature please have a look at the picture below.



Using this feature we can access elements not only like that




But like that as well.




This is an existing feature. What is new then?

The proposal:

For all looping steps For For  Each I'd like to propose to introduce additional array element loop variable called Current Name.

In this field devs could reference a variable which will be storing the name of the

What is beneficial?

Using this we can access element of the array of cluster independently from their location in the array and proposed idea will let easily access to the elements from within the loop. We can bind against the name not the index only.

O course it would be even more beneficial even devs could name element array of ANY type not containers only.

We can also name  the elements of the array which consists of containers. In this way we can have nice binding method and instead call the array elements vie index we can call them by its name (string). The postulate additional array element loop variable could be just below the current subscript form. The current view of the For Each Loop looks like below.



The benefit of this additional array would be that we would know the current name of the element and we could call this element using its name not a number. Then developers could use that name to call the element in that loop by using its name.

0 Kudos

Iterating multidimensional array using ForEach loop

Status: New
by Active Participant MimiKLM ‎03-08-2015 03:10 PM - edited ‎03-08-2015 03:14 PM



Now, when we iterate over any multidimensional array, in this example let it to be a 4D array, using ForEach loop the order of iterating is bit surprising.

For example for the array like defined like that
The order of iteration is like that the loop start iterating elements from first dimension first [0..4], then from second [0..3], third [0..2] and fourth [0..1]. So from left to right, in shorthand.
For me this order seems to be bit surprising. I'd expect rather the ForEach loop will start iterating from right to left as it'd be if we replace ForEach loop with four nested For loops:
for (int i = 0; i <= 4; i++)
    for(int j = 0; j <= 3; j++)
        for(int k = 0; k <= 2; k++)
            for(int l = 0; l <= 1; l++)


There are some advantages using ForEach loop over ordinary For loop. For example ForEach loop is dimension independed.
Is there any chance developers can have an option or flag which change the order of iteration for ForEach loop from left to right to right to left?
PS: I've started the topic in normal forum here, but after dug9000 input, I'm posting it here.
0 Kudos

Implicit and fast container array elements access.

Status: New
by Active Participant MimiKLM ‎03-08-2015 02:43 PM - edited ‎03-08-2015 02:45 PM
Let consider I have an array of containers. The container is defined as a user type, (array of the same elements) and consist, let say, from three string variables A, B and C. And, let say the array size is for, example 4.
Now, let say, the developer needs to access the array of elements A. Let say he/she has to create an array od strings called StrArr So what he has to do is for example like below:
FileGlobals.StrArr={FileGlobals.MyContainerArray[0].A, FileGlobals.MyContainerArray[1].A,FileGlobals.MyContainerArray[2].A, FileGlobals.MyContainerArray[3].A}


It is a lot of writing isn't it?
Wouldn't be worth considering to implement implicit conversion which allow just to write




0 Kudos

Drag and Drop Attributes

Status: New
by Member GarryG on ‎03-06-2015 01:13 PM

It would be awesome if we could drag and drop attributes from the attributes dialog into expression panes in TestStand.

0 Kudos

Recently I came accros situation like that:


I have a local container called AAA with the subproperty called "Name".


Then I'd like to change the name of the AAA container using the API function ".Name".


However, when I call Local.AAA.Name, instead of changing the name of AAA container I'm accessing the subproperty with this name.


I think the name "Name" should be reserved as a name of subproperty.



0 Kudos

Create Variables from the Expression Editor

Status: New
by Active Participant paulmw on ‎02-17-2015 07:45 AM

A coworker of my is taking the TestStand training for the first time and I asked him what he thought.  He has been developing software in Visual Studio for some time now (C#,, etc).  One of his feedback was the extra steps needed to create variable seemed excessive.  His point gave me an idea that I thought would be very nice to have.


Currently, in the expression editor, when you start typing there will be a small popup suggesting existing variables to select.  Wouldn't it be nice that it also gave you the option to create the variable right there.


Say for example I'll need to place my module return data into a variable but I didn't think ahead and create a local variable.  Now, I am in the expressin editor and I start typing 'local.' and then the name of my none existing variable "newVar".  The little popup that shows the existing varialbes detects that what I've typed doesn't exist and gives me a new button where I can create it and assign a data type.  No going over to the variable editor window...



0 Kudos



Recently I wanted to iterate through ALL my subproperties in the container.


I've discovered that the function GetNthSubPropertyName accessing only first level of subproperties and it doesn't get deeper into hierarchy.


I wonder if it could be an extension to this function - and to all similar functions - allowing iterating automatically over ALL subproperties. For example a new option could be applied here.


0 Kudos



It would be good if TS could allow to do a variable multiassociation. By this I mean developers can aassociate output from a module to more than one variable at one go directly from the Step Settings window, from the Module tab, as below.



0 Kudos

It would be very useful to be abe to specify a custom project or workspace when creating a new test using the LabWindows/CVI adapter. 


This would allow developers to always ensure that  any custom macros and source files are always included during development





0 Kudos

The vi templates should use the NI reccommeded 4x2x2x4 connector


Also sequence Context should be a required connection and there should be some default documentation

0 Kudos

Support Undo for editing .tsaproj files

Status: New
by Active Participant warren_scott on ‎01-14-2015 01:44 PM

For TestStand Sequence Analyzer:

if you open a sequence analyzer project file in sequence editor and make changes, Undo does not work.

Make Undo work for sequence analyzer project (.tsaproj) file changes.


0 Kudos

absolute path support in Sequence Analyzer

Status: New
by Active Participant warren_scott on ‎01-14-2015 01:16 PM

Right now TestStand Sequence Analyzer only supports Relative Paths with respect to the .tsaproj file.

Change this so we can specify path as Absolute when selecting the file to analyze.


0 Kudos

Quick switch between the release and debug dll

Status: New
by Member Tonnie on ‎11-07-2014 09:07 AM

We work with Teststand and Visual Studio 2012.

We would like to have an option to switch between the use of the debug dll or the release dll.

Now we have to change this step by step and that's a lot of work.

0 Kudos

Referencing to the steps via their names: Misleading TestStand behavior.

Status: New
by Active Participant MimiKLM ‎09-13-2014 07:50 PM - edited ‎09-13-2014 08:01 PM

Recently I've discovered misleading TestStand behavior.


In the case where in the sequence we have two steps with the same name and we'd like to refer to the SECOND step via its name like shown below:




TestStand allows us to do this, but during the execution, this reference is bind to the FIRST instance of the step:




In this caseTest D should fail showing result 12 not 10.


So, TS allows me to pick a step I want, however it looks like TS binds it to the first match on the list; so it is a lie.


In my opinion TS should either:

--don't let me do this, or

--implicitly bind it using unique step ID.


Anyway the current behavior (TS2014) is ambiguos and shall be treated as a bug.

It looks like there is no "gentle" way to access the results of the executed tests in ongoing execution during this execution.

Sometimes there is a need to access the test results during the execution, before the data will be committed to the database, and execution is still ongoing. The reason for that could be we can reuse the some data of the test in other tests, or we can use for example the status of the test to drive the flow in our sequence.

It looks like there is no other general way to do that as only described by Sasha here:

So, theoretically, - please read Sasha post - we have recipe to access all results we want. However, problem with accessing the result list is that, that it is done via the index of the ResultList array.


It leads us to two problems:


1. the elements in that list depends on the step position in the sequence file, which makes the editing sequence almost impossible,
2. if our sequence contain loops the problem from the point above is even more impossible.

Therefore, the idea:

Please prepare the easy accessible, not index based as it is now, method (container?) which developers can access the Results containers of the steps on the fly during the execution.

Handler proposal 1:
Step name (binded as unique ID) + execution order number

Handler proposal 2:
Callers path + StepName +execution order number


where execution order number could be the handler which could be number 0 by default unless the step is called few times.




Other post:

0 Kudos

In thw Sequence editor, in Tools -> Update VI calls  - > Type of calls To Update -> Process Standard VI Calls another two entries could be added in the combo box. Apart from existing:

    * Report Problems Only (No Changes Will Be Made)
    * Reload Prototype if Modified
    * Force Prototype to Reload

These two options below shall be consider to be added.

    * Resave (recompile?) Code Module (VI)
    * Resave (recompile?) Code Module (VI) with all dependencies

I think this feature could be used in case like happened to me:

I had to update one of my global TypeDefinition (*.ctl) which is called by a lot of VIs from my project. When I did it, a lot of VIs were suddenly unable to load under RTE. So, manually I had to open every VI called by TS and do Open and Save (accepting recompiling) actions. I don't have to tellyou that was very boring and long task...

0 Kudos



In the bottom right corner of the Sequence editor window (or in other place if you find more suitable) please display information about type of the adapter server.


For example for LV Adapter it would be information about whether Adapter is set to wok with LV Development System, LV Runtime Engine or other executables. For HTBasis Server it would be HTB Runtime Server or HTB Development Server.




During the development I have to often switch between LV Dev environment and RTE. To do that you have to click three times to go trough modal window to get this information. If you do this often it's getting painful. 

0 Kudos



As in subject: Enable implicit cast numbers to string in OutputMessage function.



0 Kudos

It'd would be good if in the Step settings for LV modules we can have a button which can trigger the test saying is that module going to work when we change Development Environment (DE) to Run Time Engine (RTE).


Now, in case like this, we have only a dry information saying TS cannot load the module because probably VI is broken. Problem is, when we switch over to DE VI is NOT broken.


Of course the reason behind is that RTE has not enough information to call one of dependencies, or there is ambiguity in calling a sub-module - for example a dependent sub-module is used called by step earlier.


So, summarising, the test like that would be quite needed (saving time of development), and information returns shall be more detailed indicating the sub-module cannot be loaded by RTE and why.



0 Kudos
In the sequence editor, when you hover over the step name in the Step column of the editor, please display in caption the step unique ID.
About NI TestStand Idea Exchange

Do you have a feature idea for how to improve NI TestStand? Submit and vote on ideas now!

  1. Browse by label or search in the TestStand Idea Exchange to see if your idea has previously been submitted. If your idea exists sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click Post New Idea to submit a product idea. Be sure to submit a separate post for each idea. Note: the TestStand Idea Exchange is not the appropriate forum to submit technical support questions.
  3. Watch as the community gives your idea kudos and adds their input.
  4. As NI R&D considers the idea, they will change the idea status.
  5. Give kudos to other ideas that you would like to see implemented!

The TestStand R&D team is committed to reviewing every idea submitted via the TestStand Idea Exchange. However, we cannot guarantee the implementation of any TestStand Idea Exchange submission until further documented.

Idea Statuses
Top Kudoed Authors