NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

TestStand database logging, Result Filtering incorrect

I am logging results to an Access Database using the default logging options in TestStand 3.0. The only modification is that I have set the "result filtering expression" to "Ignore Passed/Done/Skipped". This only allows failed or errored steps to log.
HOWEVER - it also logs the result (Passed) for SequenceCall steps which call into seperate sequence files. (SequenceCall steps which call sequences in the same sequence file work fine).
Why is this happening and how can I stop it?
0 Kudos
Message 1 of 7
(3,608 Views)
RichM -
There should be no difference in behavior between a sequence in the current file and a sequence in a different file. I suspect that another setting is the cause.

I assume that you are using on-the-fly logging. Currently the on-the-fly database logging will log a parent sequence call step when at least one of its children is logged, even if the parent may not be logged. For example a parent step can pass when a child step fails if the step setting says to not propagate the failure.

The on-the-fly logging does this because at the time of logging the single step, TestStand does not know if the parent will be logged because the filter expression cannot be evaluated for it until the result for the parent is created, and this will not happen until
the after the child is logged.

If you do not use on-the-fly, i.e. "post-UUT logging", the parent step will not be logged because the parent result is logged before the child.

Scott Richardson (NI)
Scott Richardson
https://testeract.com
0 Kudos
Message 2 of 7
(3,610 Views)
Hi Scott,

Thanks for the reply - unfortunately I am limited to on-the-fly logging at the moment since my UUT test in the MainSequence (SequentialModel) lasts 70 days - I might just run out of memory if I try to log all the results at the end!

The logging result filtering expression is:
Ignore Passed/Done/Skipped (Logging.StepResult.Status != "Passed" && Logging.StepResult.Status != "Done" && Logging.StepResult.Status != "Skipped")

Steps that Fail or Error are logged correctly, sequence calls in the same sequence as MainSequence behave the same. It is calls to sequences in seperate sequences that still log Passed results. I can't see any other settings - since the DatabaseOptions should be for the station and the result filtering should affect ALL sequences should they not?

Thanks,
Phil
0 Kudos
Message 3 of 7
(3,594 Views)
Phil -
I just got back from vacation and I saw your response. I cannot reproduce the behavior and I agree that the filter expression should not distiguish between sequences. Are you running any of these sequence asynchronously, i.e. a separate thread? My only suggestion is for you to post a sequence that I can run that illustrates the behavior.
Scott Richardson
https://testeract.com
0 Kudos
Message 4 of 7
(3,577 Views)
Thanks for the reply Scott, I built an example sequence but it behaves correctly! (as you said it would) I'm in the process of going through my sequence at the moment to see if I can find what is going on. Any suggestions on what could be causing it?
- Phil
0 Kudos
Message 5 of 7
(3,564 Views)
Rich -
No ideas at the moment. If you can simplify your sequence and possibly produce the behavior with a default schema, I will be glad to look at it.
Scott Richardson
https://testeract.com
0 Kudos
Message 6 of 7
(3,551 Views)

Hi,

 

have you ever found a solution or an explanation to this issue? since I'm facing the same result, even if i have this filter in the DataBase plugin:

 

Left(Logging.StepResult.TS.StepType, 7) != "NI_Flow" && Logging.StepResult.Status != "Done" && Logging.StepResult.Status != "Skipped" && Logging.StepResult.Status != "Passed"

 

But still i see the Passed Stepos logged to my database, how is that possible?

 

My plugin uses On-The-FLy option too and i have sequences which calls other sequences in a separated thread.

 

Thank you for the help!

 

Best Regards,

Zuc

0 Kudos
Message 7 of 7
(250 Views)