-
Notifications
You must be signed in to change notification settings - Fork 343
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Concept start end notify runner #2483
Concept start end notify runner #2483
Conversation
Signed-off-by: Piotr Nestorow <[email protected]>
Signed-off-by: Piotr Nestorow <[email protected]>
Signed-off-by: Piotr Nestorow <[email protected]>
@sriv |
Benchmark Results
Notes
See Workflow log for more details. |
Yes, I believe that could be a reason. We may need to set it to 1.21 in gauge-proto and check. |
@sriv OK, now it should work ... |
Signed-off-by: Piotr Nestorow <[email protected]>
@sriv In notifyBeforeConcept and notifyAfterConcept Any suggestion what to do with that potential 'err' ? |
Am yet to go into the details here, but what is the rationale for sending the concept start/end to runners? |
@sriv |
I see. But in order for the runner to pass the information to the test suite, you'd need new hooks for Before concept and After Concept with possibly some filtering? I am not at my computer, but if you have any sample on how your test suite would consume this, perhaps I can offer some thoughts. One thing to remember is that if gauge starts sending this message, all runners would get it and like we saw in the case of reporting plugins, we will break a lot of other runners since forward compatibility isn't yet there. The way to handle this is that runners have a feature flag capability in the json under 'capabilities'. We will need to check which runner is capable of receiving Concept hooks and send the message only for those which are ready. Other than that, we may not need to use the ExecuteMessageWithTimeout directly, we can consider ExecuteAndGetStatus or an even more appropriate abstraction. I guess we can borrow the mechanism for steps and use it here |
@sriv The present 'gauge-dotnet' update is here: Presently, the implementation in the runner is:
Creating Concept related hooks would result in additional changes without providing better functionality or solution, |
To elaborate a bit on @PiotrNestor answer above. We have quite comprehensive test framework that produces a lots of informative logs about status of the test flows. We also have small "generic" steps that we potentially reuse many, many times within the same test scenario with differnt input data. In the log/trace we log the name of the current executing step (using the BeforeStep hook). Then the following log lines are then related to that step until next step name occurs, fine. However, since the same step can be executed many times in a scenario and possibility be nested within a concepts it's not as trivial as it seems to easy correlate a log line to a specific point in the spec/flow. If we can log also what concept (potentially nested of course) the step was called from we can easily look at the log and see exactly "where we are" in the scenario. The screenshot above that @PiotrNestor provided illustrates how we can now log that a step is part of concept, that is part of an other concept. We though about a new hook, but decided against the complexity and now just added field that indicates if a step is concept or "real step". Then we catch this information in the BeforeStep hook. It may affect users of course, if they want to perform an action on steps but not concepts they have to filter based on the value of the IsConcept-field. |
Thanks for the explanation @PiotrNestor and @jensakejohansson I clearly need to focus more here. Apologies for going back and forth, but after the last release I am trying to be a bit more cautious here. Here are my observations:
Finally, regarding the go lint error - it depends on whether Concept hooks results need to be processed or not. I see an empty result presently returned your fork of gauge-dotnet, in which case something like |
Signed-off-by: Piotr Nestorow <[email protected]>
@sriv
|
Signed-off-by: Piotr Nestorow <[email protected]>
Signed-off-by: Piotr Nestorow <[email protected]>
I haven't followed exactly what we are doing here, but given we broke compatibility with all the reporting plugins aside from Even with the feature flags, I would suggest we merge this without an immediate release so that we can then run builds across a few more of the various runners (which use |
Signed-off-by: Piotr Nestorow <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only feedback I have here (and I apologize for dragging this) is that these ConceptHooks are not sending any result back to the runner. As a result there will be no failure reported, no messages or screenshots will be accumulated.
This is perhaps obvious, but I want to make sure that you are aware of this.
This is not a show stopper as these can be added subsequently and need not make it in this PR. Please let me know if you are OK with this behaviour. Other than this this PR LGTM
@PiotrNestor Thank you for contributing to gauge. Your pull request has been labeled as a release candidate 🎉🎉. Merging this PR will trigger a release. Please bump up the version as part of this PR.Instructions to bump the version can found at CONTRIBUTING.md If the CONTRIBUTING.md file does not exist or does not include instructions about bumping up the version, please looks previous commits in git history to see what changes need to be done. |
(Off-topic FYI) The Python and Chocolatey releases worked fine after the release triggered by this, which is good. |
Update to send concept start and end notification to a runner.
Add isConcept to step data.
Related to the corresponding gauge-proto update
@sriv @jensakejohansson
According to issue: getgauge/gauge-dotnet#203