Repeating a Test Step & Jump to another step according to its Verdict

Hello everyone,

We were thinking of two features. One is for repeating test steps according to its verdict. Similar to break conditions, when this feature is enabled, test step will be repeated until the desired condition is achieved. This can be achieved with Repeat step but we don’t want the .TapPlan’s size to be increased each time we need to perform this action.

Other feature is for jumping to another step according to its verdict. Again similar to the break conditions, when the condition is met, plan run will jump to the specified step.

I know there are ways for implementing these needs but what we want is to integrate these functionalities to the test steps.

Is there any work going on for such features or any way of implementing these without changing the OpenTAP’s source code?

Well, if not, we would like to contribute to OpenTAP if these features are applicable.

1 Like

Hi @btyilmaz, for the conditional repeat, it sounds like you don’t want to add a parent step that does the conditional repeat on its child steps. Are you envisioning having that feature integrated into the existing steps that you’ve already developed?

Yes @david-wsd , we don’t want to add a parent step. We want to add this feature to the OpenTAP’s TestStep class so that all the developed test steps have this feature.

I think both features would be valid additions. Repeating a step based on verdict is not that unusual a request. At the same time, we also want to limit the complexity in any given test step.

In any case, I suggest you add a couple of issues in the issue tracker at Issues · opentap/opentap · GitHub.

Then people can comment and vote for it.

1 Like

Hi @btyilmaz, how creating a new base class for all your test steps, which inherits from TestStep and contains the conditional repeat? Something like this

public class TestStep_ConditionalRepeat : TestStep
{
    public override void Run()
    {
        while (Verdict == Fail)
        {
            base.Run();
        }
    }
}
2 Likes

Hi @david-wsd , we thought of a similar solution but this requires to update all the test steps that are already developed. Besides I am not sure how to implement this, can we call the overriden Run() method from the base class?

@rolf_madsen I opened an issue here: https://github.com/opentap/opentap/issues/1171. We did send the CLA before.

1 Like