-
Notifications
You must be signed in to change notification settings - Fork 68
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
Feature/Cucumber Messages #233
base: main
Are you sure you want to change the base?
Conversation
FYI, github Build is failing b/c one produced component (FileSinkPlugin) gets published only to my local Nuget store. It can then not be found by the build pipeline in github. |
First end-to-end working scenario is operational.
Next:
|
364e466
to
1f2f1e6
Compare
Build is failing b/c I have a private build of Cucumber Messages nuget package. When the next release of that comes out, I will patch up the nuget references in this branch. |
This is fine. We have feed https://www.myget.org/feed/Packages/reqnroll-unstable where we could publish interim releases (of dependencies as well) and I think this feed is added to the nuget sources, so the build would be able to resolve it though them. But I never tested this model yet. |
… an 'Attachment'.
…ows an exception.
…rForRegularExpressionMatch to false (as these aren't used by Reqnroll).
Needs CI and Git info. Needs to be refactored.
Refactored OS and CI information gathering out of AnalyticsEventProvider to EnvironmentWrapper.
Hooks partially work.
…nts (headers, rows, cells).
…s are properly parsed as DataTables by the Gherkin pickler.
…and ID. Validates that top-level Messages match by Type and Count.
Introduced visitor pattern over the Messages types.
…or for all element types.
Source comparison complete. Feature top-level properties comparison complete. (Feature Children next)
Fixed namespace mispelling in FileSinkPlugin (to match changes made in previous commit). Temp fix: updated plug-in version reference to 2.2.0-local; need a way to fetch this from assembly.
Temp patch to Cucumber.Messages - with local build. Will need to revert to global nuget package when PR accepted by them.
True. I've confirmed this by looking at the html generated from the CCK. {An aside, the Attachments scenario in the CCK is the only example of using {string} cucumber expressions. Wild that they don't have a scenario just for expressions.} The CCK html has the quotation marks in blue, while the html that is generated from our Messages does not. How much of a deal-breaker is that? |
Not at all if this is only about the coloring and there is no duplicated displaying of the quotes. We could use |
OK. I consider this question resolved. |
TODO: in side-bar discussion with @gasparnagy it was agreed to switch back to UUID id generation and remove the run-time rewrite of static message IDs. This is to avoid the performance and memory pressure overhead of rewriting sequential IDs. Completed with 15f0230 |
…ty nullable. Renamed StepArgument to TestStepArgument and moved it to the TestStepDefinition.cs file where it is closer to its eventual use.
TODO: there is a bug with the sequences of messages when Attachments are published (they are being published before the TestCaseStarted event). RESOLVED with 71aac1b |
…s. (Regression due to the prior modification that adjusted all Envelope timestamps to UTC)
Feature-level Tag handling: there is a discrepancy between the Gherkin PickleCompiler (for .NET) and the Cucumber Compatibility Kit. The .NET Gherkin PickleCompiler copies those tags down to the Does this behavior match what Reqnroll does internally during its handling of code gen from the AST? |
…o fail that depended upon the sortability of Ids.
Logically the feature tags are flowing down to the scenarios, but for some other reasons, we document them separately in the
We currently build the code from the original AST and not from the pickles, so it does not really matter how the pickle compiler works currently. So to check the correctness of PickleCompiler I think the only chance is to compare it with the Java or Javascript versions where this is heavily used. My guess is that it's rather the CCK what is wrong, but not sure. |
@gasparnagy build is failing while building docs. I had included two pages I had written on Messages. The TOC references them but the build can't find them? Not sure why. |
Fix: stack traces were left off of StepFinished messages. Fixed with 61c7057 |
…n scenario to reflect that NUnitRetry uses a Feature level tag and that tag will propagate to the Pickles.
…e sorted in the order the Pickles appear in the message stream. This allows for the fact that the test runner may execute test methods in any order and affect the output sequence of test execution related envelopes. Resorting them allows for easier comparison with the expected results.
Fixed issues that were preventing NUnitRetry scenario from validating. These were issues in the validation suite and should make test validation more reliable. |
I had asked the Messages team about adding message types for Before/After Feature hooks. It would seem that they've decided No on that for now (see. Reqnroll Messages simply maps Before/After Feature hooks into TestRunHookStarted/Finished messages. |
I will check and fix it. Please ignore for now. |
Yes, for now. But I will make a comment about it in the cucumber messages list. |
…s that were given at construction. Consumers must deconstruct the MatchArgument to get its value.
…ore/After TestRun hooks. AfterTestRun hooks are properly handled; Before are not. Refactored the CucumberMessagePublisher logic in how it handles hookBindingStarted and Finished execution events to clean up the code and move envelope creation responsibility to the hook tracker. This should make it easier to further refactor should we choose to change how we emit messages for the Before/After Feature hooks which don't map cleanly to the Cucumber Messages spec.
Resolved: Ignore this issue. This was my mistake. The existing behavior is fine. |
Updated documentation md page to account for changes in the configuration schema.
Fixed it. Mistake in file naming in the .md files I had added. |
Adds support for creation of Cucumber Messages during the execution of Reqnroll generated tests.
See Cucumber Message for information about the output format.
🤔 What's changed?
Changes are in three main area:
Messages are strings serialized from the CucumberMessage Envelope format and stored one per line in an ".ndjson" result file.
Configuration support is added as a new section of the reqnroll.json configuration file. (Without interfering with the existing configuration schema and config reading mechanisms). Configuration settings can also be overridden by use of environment variables.
⚡️ What's your motivation?
To provide future compatibility with the broader Cucumber eco-system of tooling.
To provide the input to a future implementation of a Reqnroll replacement to LivingDocs.
🏷️ What kind of change is this?
♻️ Anything particular you want feedback on?
Anything.
📋 Checklist: