NI TestStand Idea Exchange

Community Browser
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.

Top Kudoed Authors
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

When using VI Analyzer, one can type "#via_ignore TestName" (e.g. "#via_ignore Spell Check") and then that VI/object won't have those specific test results when running VI Analyzer.  I would like to see this type of functionality added to TestStand.  For example, an individual step could have in its comments "#sa_ignore TestName" (e.g. "#sa_ignore NI_FileByExpression")

 

Pulido Technologies LLC

For TestStand Sequence Analyzer, all the results information/reports include status, user, computer, file, time and results.  However there's nothing to link to what version of the sequence file you actually analyzed (it just has the path to the file analyzed).  It would be very helpful for compliance tracking if the results/reports also included the sequence file version. 

I can add my own test to log this as information, but it would probably be helpful to others if it was included as part of the results header information.

Hi,

There is a LabVIEW Champion title... so why not a TestStand Champion title ?!

I think it would make a lot of sense !

In instances of nested expressions, it would be useful to be able to press tab to indent a line. I propose inserting "n" spaces when pressing tab.

 

Coding style of course varies, but for readability, I rather dislike the following

 

Trim(Locals.SomeLocal) == "" ? (Locals.SomeLocal = "foo",Locals.AnotherLocal = "bar", Locals.SomethingOrRather = "zoo") : False

 ...and much prefer this styling:

 

Trim(Locals.SomeLocal) == "" ? (
                Locals.SomeLocal = "foo",
                Locals.AnotherLocal = "bar",
                Locals.SomethingOrRather = "zoo" ) : False

...but at present the latter is tedious because one has to insert a lot of whitespace manually or worse yet, use another text editor and paste it into TestStand. It would be nice if TestStand's expression editor supported this basic feature available in almost every text editor or IDE.

 

Thanks,

 

Mr. Jim

 

 

 

I would love native support of regular expressions (PCRE regex) in TestStand expressions, with the ability to output captured groups.

 

For instance, hypothetically:

Number EvaluateRegex(String string, String pattern, Number indexToSearchFrom = 0, Boolean ignoreCase = False, Array CapturedGroups)

I have successfully implemented a sequence to perform Microsoft's version of regex evaluation...

Regex_NET.png

...but it takes several steps and uses Microsoft's flavor of regular expression syntax. This is frustrating for me because I already use moderately complex PCRE expressions all the time, and Microsoft's syntax varies enough to present an additional learning curve. It's also much more cumbersome that just using a native TestStand function within an expression.

 

My idea is similar to this one, but I'm looking for a function. Whenever people ask for regex support on the forums, it seems that workarounds are presented using simple string functions, but these don't cover my more advanced use cases.

 

Since day one of using TestStand I have been looking for this feature and I have always wondered why it is absent.

 

Thank you,

 

Mr. Jim

Hi all,

 

At times when I am filling out an expression, I'd like to be able to refer other developers to a specific sequence or step within the file.

 

I think it'd be useful to be able to add clickable "hyperlinks" to other steps or sequences within the same file.

ExpressionCommentLink.png

Would anyone else use this if it were a feature?

 

Thanks as always,

Mr. Jim

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.

 

Cheers,

 

Mr. Jim

 

FindAllSequenceCalls.png

 

 

Hi all,

 

There are times, for instance, when I am paused at a breakpoint and I want to copy the full name expression of some deeply nested variable that only appears at runtime.

 

I wish there was an option on the context menu that would allow me to copy the full path of some variable.

 

For instance, in the following illustration I want to be able to copy the string

"Parameters.ModelPluginConfiguration.Plugins[0].PluginSpecific.RuntimeVariables.PerSocket[0]"

I've added a context menu option called "Copy Path", but maybe that's the wrong nomenclature.

 

Am I ignorant of some functionality that already does this? (Besides typing it in the watch window?)

 

Thanks as usual,

 

Mr. Jim

 

CopyVariablePath.png

 

When TestStand launches, it determines the active LabVIEW version and copies the TestStand API VIs into <LabVIEW>\vi.lib\AddOns if not already present. (SOURCE)

 

I suggest there should be an additional step here and TestStand should call that LabVIEW version to mass compile these VIs.


Currently, the VI version remains unchanged which means when you open a LabVIEW code module which uses these, you'll sometimes find you have a 'dirty dot' due to unsaved changes because of the recompilation. It also means that you wouldn't be able to run a sequence using the LabVIEW Run-Time Engine until you've switched to Development and converted the VIs.

This is a minor annoyance but it would be nice if TestStand could cut out the additional version conversion step.

 

I do wonder whether the transfer of the TestStand API VIs into the vi.lib could actually occur when LabVIEW is installed if a TestStand installation is detected. Perhaps this might be relevant for other addons which existing LabVIEW installations have.

It's a relatively minor gripe, but wouldn't it be nice to be able to center justify a message in the MessagePopup step type?

 

Step.MsgFontData.Justify

...is strangely missing.  It could be an integer as in LabVIEW:

0 = Left

1 = Center

2 = Right

 

Yeah, I know it's easy to write code to produce a custom dialog, but it seems simple enough that it should be there natively.

 

Thanks as always,

Mr. Jim

When choosing a VI for a step, if you browse into a PPL, the view shows the directory structure inside of the PPL.  A better view would match what LabVIEW shows: the Virtual Folder layout.

 

I tend to keep my library VIs in a flat directory structure, but organize them in my project with Virtual Folders.  But the PPL view in TestStand just shows the single directory instead of the nice organization that I set up in the project.

Hello,

 

It would be nice if there were an easy means of programmatically loading a database schema for result processing.

 

Here's my context for asking:

We have a custom database schema that must be loaded on all of our stations and we'd prefer that it "just works" when our customized database result processing plugin is loaded.

 

I managed to accomplish this by studying the format of TestStandDatabaseSchemas.ini and writing a parser to insert our schema as necessary. This was a bit painful, though, and the possibility of the format changing without notice has crossed my mind.

 

Thanks as usual to the R&D team.  (Assuming this idea gets some traction!  Smiley Wink)

 

Kind regards,

 

Mr. Jim

 

 

The concept of TestStand Environments was introduced in TestStand 2016 and allows you to define multiple configurations on a single test station or development PC. It would be nice if there was an option to link a sequence file to a specific environment, similar to how you can set a sequence file to "Require Specific Model" In the Advanced tab of the Sequence File Properties. When a sequence file is loaded, the engine could check to see if the required environment matches the current environment and:

  • Automatically relaunch the app in the correct environment
  • Generate an error
  • Prompt the user for an action
  • Other??

It would be nice to choose the behavior when a required environment doesn't match.

 

If anyone has other thoughts or use cases, please share below.

-Trent

right now with TestStand Sequence Analyzer utility, it is limited to analyzing a whole sequence file at once (or as much of it as you analyze before you hit the stop button).

However, if I have a long sequence file this can take quite a while, and I don't really want to wait.

Add a feature where I can select areas to analyze and have sequence analyzer just analyze those areas (for example -- select a few (sub)sequences in my sequence file, or a few steps within a sequence).  This way I can limit the area of my analysis to where I know I made changes (or where I know my biggest problems are) and focus on those and not waste time analyzing everything else. 

The current placement creates confusion about what you’re actually closing out of when you click it. It makes me hesitate and wonder what I am about to close. 

 

If you click it when there are multiple files open, it just closes out of the tab on top. If you click it when there is only one file open, it closes out of the whole pane, including the Sequences and Variables windows.

 

TestStandX.png

 

It would eliminate any ambiguity if the X for each file were on the tab for that file and if there were a separate X for the pane, like you typically see in tabbed programs.

 

You could also just put an X next to the pin on each little window instead, like the X in the Step Settings pane and the Insertion Palette in the screenshot above. 

The Search Directories.Insert method should only insert the directory if it is not already there.

 

The Method includes an index argument, if the directory is already there, then it should move the existing directory to the requested index.

 

While we were working on the shipping examples for DQMH, we discovered that the insert method was creating duplicates every time it was called. We implemented a work around that includes a for loop to check each of the items in the search directories list to see if it is the directory we are trying to insert, if it is, we delete it. Once the for loop ends, then we insert the directory where we want it.

 

You can see a video of the issue and how we worked around it here: DQMH 3.1 Only inserts the Delacor examples directory into Search Directories once

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?

Find yourself placing a Sequence Call step and trying to determine the appropriate value to enter for a numeric parameter called "Direction"?  Tired of creating sequences with numeric parameters named like the following: "Direction_0_Up_1_Down_2_Left_3_Right"?

 

The solution is to support the creation of variables with enumerated type within TestStand.  Enums could be created as custom variables and then used as wherever a self-documenting variable is required.

 

 

Enum type creation:

 24440i0A04C051A35273A4

 

 

 

As seen from a Sequence Call step to a subsequence that uses an Enum as a parameter: 

 

24442i5CDD825A78B161E5

 

Hi,

 

Several years that I'm facing this issue : I'd love to be able to rename a file when building my TestStand project image.

It would be particularly nice to ease the installation of a Type Palette thanks to this feature (taken from TS help):

 

TestStand also searches the TypePalettes directory for type palette files with the Install_ prefix. When TestStand finds a type palette file to install with a base filename that is not the same as any existing type palette file, TestStand removes the Install_prefix and adds the type palette to the type palette list. When TestStand finds a type palette file to install with a base filename that matches an existing type palette, TestStand merges the types from the install file into the existing type palette file and deletes the install file. This method is better than modifying the existing type palette file because this method is more modular and flexible for deployment and updates.

 

So, in my project I made a type palette file xxx.ini. When deploying this file, I'd love to rename it Install_xxx.ini so TS can install/merge it on the destination computer !

This is just an example of the use case, it could be applied to any file within my deployement image.

The settings field can easily become too long to see every active option and there's not necesarily any consistency between steps if they have differing options. What I mean by that is if you only set the "Do Not Record Result" (my favorite) option in one step, it will be on the left of the settings field. But if you now set several options on another step, the settings are not lined up so that it becomes hard to see at a quick glance which steps I forgot to not record (because TS still doesn't default to not recording steps). You have to analyze the settings line for each step.

Current settings.PNG

 

I propose something more graphical and ordered. Here's my idea of at least ordered. The text could be replaced with icons representing each setting.

Ordered settings.PNG

 

Then it would be graphical, ordered, and concise. What more can you ask for?