TestStand Lookup String for UUT Result Passed/Failed

When I am in CleanUp group,what is the lookup string for UUT Result=Passed or Failed. That is all steps in main group passed = UUT Result=Passed. I am using Labview.

Using RunState.SequenceFailed called from Cleanup step in TestStand sequence seems to work reliably for me but using RunState. ErrorReported does not. It seems as though the sequence context becomes invalid or something (although I get no error when accessing this property). It does not always come back true when a runtime error has occurred. Any ideas?
Thanks, Roger Owens [email protected]

Similar Messages

  • How can I copy test plan WITH ITS RESULTS (PASS/FAIL) to other project in MTM??

    How can I copy test plan WITH ITS RESULTS (PASS/FAIL) to other project in MTM??

    Hi odedn,
    Thank you for posting in MSDN forum.
    Based on your issue, you mean that you want to copy the test plan with test results from the current team project
    to other team project, am I right?
    If yes, as far as I know that when we copy test plan with test results to other team proejcts. It is default that
    there just will not copy the test plan with test results (pass/fail) to other team project in MTM.
    You can refer the following MSDN document’s
    what gets cloned, it explained that which objects are copied from the source test plan to the destination test plan.
    Reference:
    http://msdn.microsoft.com/en-us/library/hh543843.aspx
    If you still want to this feature, I suggest you can
    submit this feature request:
    http://visualstudio.uservoice.com/forums/121579-visual-studio. The Visual Studio product team is listening to user voice there. You can send your idea there and people can vote. If
    you submit this suggestion, I hope you could post that link here, I will help you vote it.
    Thanks for your understanding.
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • [LV - TS] How to execute a SEQ file, get the result (PASS/FAIL) and the report file ?

    Hello,
    I'm looking for the most obvious and simple way to, from Labview :
    1- Start the Teststand engine : DONE
    2- Get a list of SEQ files to execute : DONE
    3- Loop through the list to execute each SEQ file : <- found some examples but I have some trouble with the UIMessage stuff
    http://zone.ni.com/reference/en-XX/help/370052N-01/tsexamples/infotopics/executing_sequences_using_api_labview/
    4- Get the result of the SEQ execution : <- unsure
    5- Get the XML path+name of the report file generated : <- obviously not easy
    http://digital.ni.com/public.nsf/allkb/3D3B2358DF9B786B8625789500549A3B
    http://forums.ni.com/t5/NI-TestStand/Getting-Report-File-Path-location-at-execution-in-TestStand-2012/td-p/3041789
    Here is my current implementation :
    David Koch
     

    Hello,
    I tried to work from this example :
    http://forums.ni.com/t5/NI-TestStand/Execution-of-TestStand-Sequence-in-LabVIEW-via-TS-API-Different/td-p/2939616/page/2#M46686
    However it remains unclear about how to get a simple
    answer from just running a sequence file out of any
    model so far (Simple Pass). Like I told you, all what
    I need, once the TS engine is started, is a VI with the
    following interface :
    INPUT
    1- TS engine reference
    2- SEQ file path (path or string)
    3- Sequence name to execute
    4- UUT string (optional, but yeah)
    5- error in
    OUTPUT
    1- Result boolean (PASS/FAIL)
    2- Path to XML report
    3- error out
    It would be so cool to just have this
    About the surrounding UI, I'm working on it. The LV
    code is not really important at this point, it's running
    a SEQ file that matters to me.
    David Koch
     

  • Reporting results: Pass/Fail AND Incomplete

    Some of our students may not complete a quiz and we want to
    identify them so we can contact them. For those who do complete the
    quiz, we need to report Pass or Fail. It doesn't look like we can
    do both of these. Is that true? The settings seem to be radio
    buttons that make you choose either/or.

    I'd check into what you can do with LMS software. All of the
    reporting needs above should be possible with the right Learning
    Management System - which can be used to "plug in" your Captivate
    SWF files. Or am I missing something here?

  • Edit the result (pass/fail) of a subsequence

    I have a sequence that looks like this:
    MainSequence
    Step1
    Step2
    SubSequence
    DoWhile (Test1 fail and time has not exceed 30 sec)
      Test1
    End
    Step3
    The DoWhile loop run Test1 over and over until either Test1 passes or time has exceed 30 seconds. Usually, Test1 actually pass. So, on the steps screen, Test1 would actually be shown as "PASS", but when the SubSequence exits, the SubSequence would be shown as "Failed". I think this is because Test1 failed a few times before passing.
    How do I change it so that the SubSequence would be shown as "PASS" in the report as long as Test1 passed once?
    Thanks.
    Solved!
    Go to Solution.

    Hi Bladhart,
    Maybe this small example
    will solve your task,
    Regards
    Juergen
    =s=i=g=n=a=t=u=r=e= Click on the Star and see what happens :-) =s=i=g=n=a=t=u=r=e=
    Attachments:
    Loop.seq ‏7 KB

  • What is property that contains the pass/fail status(UUT Result) of my main sequence ?

    Test Engineering
    Empower RF Systems Inc.

    Hi Mal,
    In general, in TestStand you use a step type that can use the Sequence Adapter in order to call a sequence (named subsequence in this context). The MainSequence is called from within the ProcessModel execution entry-points ('Test UUTs' and 'Single Pass' sequences in the TestStandModel.seq) when you launch the execution from "Execute->Test UUTs" or "Execute->Single Pass" menu or directly by the engine when you start an Interactive execution by selecting "Execute->Run MainSequence" menu option.
    In the first case, after the sequence call step executes, the Sequence Adapter can set the step status. So, finally the property that contains the status of Main Sequence is a subproperty of the SequenceCall step that in the ProcessModel execution entry-points is named "MainSeque
    nce Callback". The lookup string for this property depends from where you want to access it. For example :
    a) if it's from a step you add as part of the Execution entry-points customization, then the lookup string for the property should be "RunState.Sequence.Main["MainSequence Callback"].Result.Status"
    b) if it's from a step in the MainSequence, then the lookup string for the property should be "RunState.Caller.RunState.Sequence.Main["MainSequence Callback"].Result.Status" but special consideration should be taken if the MainSequence is run in Interactive mode, since the "RunState.Caller" property doesn't exist in this case.
    In the second case the sequence status isn't available (see above).
    Regards,
    Silvius
    Silvius Iancu

  • How do i configure a FOR loop to have the behavior of the step Loop Type: Pass/Fail count?

    Hello,
    I'm using the Pass/Fail count set to one Pass to capture an event generated by my DUT.  I originally used a numerical compare step with the Looping type of Pass/Fail count to accomplish this.  Unfortunately the implementation changed and now I need to execute a few steps that can not be combined within one code module as before. Nor can these steps be put into a subroutine.  One of the steps executes a .NET asembly and I haven't figured out how to pass the reference to the subroutine.  When the subroutine is intered the reference is lost and the methode does not execute correctly.
    I have an evaluation function the exits the loop when the expected conditions are met. Everything works except for the Overall Pass/Fail result of the For loop.  If the loop exits due to the first numerical compare test passing, I want the loop overall execution to report as "Passed".  If the loop reaches it's predetermined number of iterations, the overall result needs to report as "Failed".  It would also be nice to have the radio button functionality of "Record Result of Each iteration".  Some conditions require a wait over a minute for the event to occur and I don't want to generate needless data for the report.
    Currently I get the pass/fail status for each For loop iteration, but only "Done" for each loop iteration.  I don't want the initial few failures to cause the test to fail.
    Does anyone know how to do this? Suggestions?
    Thanks,

    I have 2 steps in the loop that can not be combined into one step. This forces me to implement the behavior in some form of loop.  A While Loop could be an option.  I would need to pass the Step.Result.Status from the Multiple Numerical compaire step to the condition of the While Loop.  I tried to use the Step.TS.ID without success.  Some form of reference to the numerical compare step would be needed. I'm using a For Loop as I do want to limit the number of iterations of the loop.  In the case where the loop iterations are reached, the event I am trying to detect did not occur at the correct time and a failure needs to be reported.
    I came up with something based on my comments in the second post:
    1) To start with I configured a Locals.ForLoop_5 variable.  This is used to set the limit on the loop iterations and for comparison after the loop has finished executing. More on that later.
    2) The first step inside the loop invokes a method within a .NET assembly that has been packed in a DLL This method gets the required data from the DUT and stores it to a text file.
    3) The next step is the Multiple Numeric Limit step.  This step invokes a VI that extracts the data from the text file.  This step has been customized in several ways.
      i)  In Run Options, the Results Recording Option was disabled.  This prevents recording of "Failed" while the loop executes when waiting for the event to happen.
      ii) In Run Options, the Step Failure Causes Sequence Failure is unchecked.  Same reasoning as i)  These steps are not true failures.
      iii) A Post Action is configured to go to the nexxt step after the For Loop End step On Condition True with the logic of Step.Result.Status == "Passed".  This causes the loop to exit when the first "Passed" is encountered which corrolates with the event I'm trying to detect. On Conditon Fail remains set to default.
    4)  The step after the For Loop End is an expression step with everythin set to default except for the Status Expression logic set to: Locals.Loopindex < Locals.ForLoop_5 ? (Step.Result.Status = "Passed") : (Step.Result.Status = "Failed"). This step performs the overall Pass/Fail reporting for the For Loop.  If the number of loop iterations is less than the maximum it could have only gotten there by the previous logic triggered by the numerical compare passing, therefore "Passed".  If the loop index has reached the limit, then the event was not detected, therefore Failed.
    I have tested this work around with success, it just a pain to now have to implement this on my 40 some odd For Loops.
    If there is a better way, I'd still like to hear it.

  • Negate Boolean for Step.result.passfail

    Ok, I'm looking for why TestStand is doing what I did not expect.
    The first passes "Fail" to "!Step.result.PassFail" and  uses a data source of "Step.result.PassFail" this step always Regardless of the value of "Fail"
    The second passes "Fail" to "Step.result.PassFail" and uses a data source of "!Step.result.PassFail" and operates as I intended. (Fails if Fail is True).
    A brief search yeilded the "Don't do that... negate in code" answers to the old "how to Negate Boolean for Step.result.passfail?" question. But this does not explain the unexpected behavior and I'd really like to understand whats really happening here.
    Attached is a simple example that demos the behavior  using dialog express vis
    Jeff
    Attachments:
    Funny.seq ‏24 KB

    "!Bool" equals "!bool", as long as you make no case sensitive string compare
    Ok, the trick is understanding expressions.
    Play a little game with me please. Here are the steps to follow:
    1. Open your sequence file Funny.seq. Select step one.
    2. In code module tab, select the parameter Error Out value. Current content is "Step.Result.Error". Open the expression editor.
    3. In the expression, type "ABC" (including quotation marks). Press "Evaluate". You will see that the expression must either
    3. a) point to a container or
    3. b) be a container itself.
    4. Close the dialogs (cancel expression edit dialog) and open on for the parameter Fail (current value "Step.Result.PassFail"). Open the expression editor.
    5. Again, type "ABC" in the expression. Evaluate it again.  You will see that the expression must either
    5. a) point to a boolean or
    5. b) be a boolean itself.
    What do we learn from this steps?
    "Step.Result.PassFail" is the lookup string for a boolean variable. So the evaluation results in a pointer to a boolean.
    "!Step.Result.PassFail" is the negation of a boolean variable. Evaluation will therefore fetch the value of the lookup string (type: boolean) and then negate it. So the result will be a boolean value, but it does not point to the variable "Step.Result.PassFail" anymore! Since the result is boolean, the expression passes evaluation.
    That is the reason why "!Step.Result.PassFail" as parameter will NEVER pass the boolean return value of the VI to the TestStand dataset (aka execution).
    Let's proceed:
    6. Move to step two. Switch to tab "Data Source". Open the expression editor for the data source expression.
    7. Again, type "ABC" in the expression. Evaluate it again.  You will see that the expression must either
    7. a) point to a boolean or
    7. b) be a boolean itself.
    So, catch up: We have the same issue here as step 5! We are not referring to any variable anymore once the expression gets evaluated!
    So why does it work as desired nevertheless?
    I gave the explanation in my previous post:
    Norbert_B wrote:
    The reason why your negation in the data source works is the status expression:
    Step.DataSource !="Step.Result.PassFail"? Step.Result.PassFail = Evaluate(Step.DataSource):False, Step.Result.PassFail ?"Passed":"Failed"
    As you can see, your expression does NOT equal "Step.Result.PassFail". Hence your negated value of this variable is evaluated as stated in the case-select part (Step.Result.PassFail = Evaluate(Step.DataSource)). This evaluation results in your negated value. Next, the Result is set to either "Passed" (evaluated to True) or "Failed (evaluated to False).
    You make a STRING compare in the first part of the status expression. YOUR data source DOES NOT MATCH the expected string.
    So in the TRUE case, you evaluate your new data source and write the result back to Step.Result.PassFail. So essentially, this step (in your case) simply negates the content of Step.Result.PassFail! Next expression will query the boolean value of Step.Result.PassFail and write either "Passed" or "Failed" into the Step.Result.Status....
    hope this is now more clear,
    Norbert
    EDIT: The only weird thing is, that in the first step during execution TS does not create a warning (or error) because you assign a return value of the module to a "True" (boolean value).
    One thing you can also do to increase understanding about the "issue": Simply write "True" or "False" (without quotation marks!) into the expression field "Value" for the boolean return value of the VI.....
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Pass/Fail in Report Filename

    I would like to display pass/fail in the TS report filename.  Please provide steps or example code of how to perform this task.

    Just an update:
    TestStand 4.2 gives you the ability to specify the report path using Expressions as well right from the Report Options dialog box. For instance, using the  
    <UUTStatus> macro, you could specify that reports for UUTs that Pass versus those that Fail go to different locations.
    For more information on this, refer to:
    NI TestStand Help: Specifying Report File Paths by Expression
    NI TestStand 4.2 Release Notes: Using Expressions to Customize Report File Paths
    For more information on the new features in TestStand 4.2, refer to:
    Whats New in TestStand 4.2
    Jervin Justin
    NI TestStand Product Manager

  • Dynamically specify TestStand pass/fail string

    I am performing tests utilizing multiple instruments. Each instrumemt may independently be in 'live' or 'simulated' mode. If any one instrument is in 'sim' mode, the test is considered in 'sim' mode. When in 'sim' mode the tests pass.
    My goal is to be able to look at the test report and determine if a specific test ran in 'sim' mode or live mode. My solution is to append the suffix '-sim' to the test status produced by TestStand. Thus the 'passed', 'failed' strings would become 'passed-sim', 'failed-sim' in 'sim' mode. These strings would have to be given to TestStand at the same time as the measurement value but before the test exited.
    Any thoughts or ideas on how I might accomplish the dynamic setting of the pass/fail string? I don't want this to be a permanent change, I want TestStand to revert back to the original pass/fail strings for the next sequential step.
    Hurst C.

    Hi Believer,
    What you seem to be trying to do is modify the results or a property of the results from the previous step. But unfortunately modify this property will only be affective if you were to re-run that step again eg step back one step. What you need to be modifying is the property that is in the Locals.ResultList. i.e Locals.ResultList[0].ReportText for the first step to be recorded in the sequence, Locals.ResultList[nth].ReportText for the nth step in the sequence to be recorded.
    By modifying 'RunState.Sequence.Main["Clock test (4.0V)"].Result.ReportText="FLAG"' you are actually modifying the runtime version of the step before its executed. Therefore, providing you do not over write the contents of ReportText within you step, this initial value will be seen in the result.
    You can check this by stepping into you step and checking the value of ReportText within the step.
    Hope this clarifies things
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Pass/fail status (UUT Result) of my main sequence

    I would like to have my last step in my test sequence to be a DLL passing to my SQL database a part number, a serial number from “RunState.Caller.Locals.UUT.SerialNumber” and Pass/Fail status of my Test Sequence.
    Can I pass pass/fail status of my test sequence to my DLL before execution is completed?
    Thank you,
    Henry
    Solved!
    Go to Solution.

    Access Pass/Fail status by using RunState.SequenceFailed.  It will be True if the test failed.
    Hope this helps,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Sequence pass/fail variable for csv report

    I need to write a small CSV file with my sequence test results. The way I am considering doing this is to
    save the information I need as the test progresses in local, file, or station global variables
    make a report string using the values stored in these variables, and
    write the string to a file via a LabVIEW VI.
    Is this a reasonable way to do it? In which variable does the overall UUT pass/fail result get stored?
    StephenB

    I recommend against doing it this way.  What you want to do defeats the entire purpose of using TestStand in the first place.
    If you are using a newer version of TestStand (2012 or newer) I would create a custom plugin to do exactly what you are doing.
    There is a ton of information out there on plugins.
    Here is an example on probably what you are trying to do:
    http://zone.ni.com/reference/en-XX/help/370052N-01/tsexamples/infotopics/modelplugin/
    Here are some more links that are important:
    http://zone.ni.com/reference/en-XX/help/370052K-01/tsfundamentals/infotopics/pmpcreatingplugins/
    http://zone.ni.com/reference/en-XX/help/370052M-01/tsfundamentals/infotopics/process_model_plugin_ar...
    The advantage of using a plugin is that now all tests can utilize it as opposed to the report generation being specific to a single test.
    Hope this helps,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Best way to get UUT result to Custom TestStand UI

    Hello,
    I am trying to get the results of my UUT to my custom UI.  I am already using the EndExecution Callback to tell my UI when the UUT is finished executing.  I was hoping ot use that same callback VI to tell my UI the result of the execution. 
    The EndExecution callback includes a reference to the execution.  I figured I could read the "ResultStatus" Property, which seems to report "Passed" or "Failed" correctly, but if I terminate execution, it is still returning "Passed", when I would expect it to return "Terminated". 
    Does anybody have any thoughts on what I am doing wrong or what might be a better way to do this?  I thought of just using a UI Message, but then that requires me to modify the client sequence and post the UI message with the results.  I'd rather have this work for all client sequences. 
    Solved!
    Go to Solution.

    I think you are looking for handling the UIMsg_ModelState_TestingComplete user interface message.
    Refer to the help:
    UIMsg_ModelState_TestingComplete–(Value: 34) TestStand process models post this message to the user interface after the MainSequence in the client sequence file returns control to the model. If the execution is not a batch controller or a parallel controller, the stringDataParam parameter specifies the UUT result status. If the execution is a batch controller or a parallel controller, the value of the stringDataParam parameter is Done. The numericDataParam parameter specifies the test-socket index. The activeXDataParam parameter contains a reference to the sequence context for the process model sequence file that posts the message.
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Teststand report UUT result

    Hi,
    I execute a teststand sequence from Labview using teststand's API.
    From Labview I'd like to get the UUT report result ("passed" or "failed") of the Teststand sequence I execute.
    Which Active x Invoke method or property node must i use?
    I have looked for in teststand help but up to now i haven't found.
    Thank you,
    Alexandre

    Hello,
    TestStand stores Step results in a Local variable called ResultList, which is an initially empty array of conatiners. After a test step executes, its results are added to the Locals.ResultList array. If you do not want the results of the "first pass" on a step to be recorded, you must delete its entry out of the ResultList array. If you are using TestStand 2.0.x then there is a callback called "PostResultListEntry". You can add code into this callback to delete the entry from the ResultList. All you need to add is a simple expression (i.e. statement step) that will delete the last element out of the array. You will need to add a variable in order to keep track of the number of times the test has failed. If the global informs that this is the f
    irst fail on that test step, then delete the element, otherwise do not. This way when the seqeunce is complete, you will have your desired results. I suggest you experiment with the various Engine callbacks to see how they work. You can get access to them by selecting Edit>>Sequence File Callbacks... from within the Sequence Editor.
    I hope this helps.

  • Judge testing result pass or fail

    I use teststand to call dll(writen by CVI),my question is I get a result from instrument by dll ,how judge the result pass or fail by teststand,the limits is defined by user .
    thank you!
    Solved!
    Go to Solution.

    Hey Sean,
    I think I may be confused by your question so can you answer the following-
    When you say "judge" do you mean that you want the step to determine if the result lies within the limits defined by the user?  Is the result numeric?  String? Boolean?  How is the user inputting the limits?
    Most of the time people use the Numeric Limit Test step to determine limits on measurements.  This determination is accomplished by the Status Expression of the step combined with the limits set for that step.  How that is setup defines whether the step passes or fails.  If you let me know how the user is inputting the limits I can help you dynamically set the limits.  Which is most likely what you'll have to do.
    Regards,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

Maybe you are looking for