-
-
Notifications
You must be signed in to change notification settings - Fork 697
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
compatibility-kit: [Doc] Usage of CCK and fake-cucumber #1400
Comments
Just quickly (Might not matter), is there a reason you're not using fermium LTS 14? It would be a better node version to use for ensuring a wide variety of people use it / stability. |
Sorry I know no node so don't even know what that means. We tried various node versions start with ubuntu's defualt, then went to v14 and v14 LTS from NodeSource, at version 15 we got actual progress, but still the errors shown. Very frustrating. Can you point me to your docs where there are the required/minimum node setup instructions? |
Node issuesIt can be painful to work across JavaScript packages in the monorepo at the moment. This is being hugely improved in #1372 which is close to being done I think. The simplest workaround to get a particular package running as needed is to change the values for other CCKAs far as I know, the monorepo doesn't contain any tools for running the CCK suite or producing reports. That's an exercise left to the cucumber implementation - run the features from the CCK with support code equivalent to the example JavaScript ones, and compare the messages that come out with what the CCK defines (with some normalisation to deal with ids, timestamps etc). Examples:
I think there are varying approaches between the implementations in terms of how the CCK features and messages are brought in:
I'm not sure how the Rust ecosystem works in terms of dependency management, but maybe the fastest starting point would be the Java approach of just copy the files over and start building your test infra against them. Paging @aslakhellesoy who may be able to add more and/or correct me |
Thanks @davidjgoss, appreciate the detailed response.
Unless there is something incorrect we have the info we need, and will wait for #1372. Closing - "Update contributor docs" is on the checklist in #1372 |
Hi @bbros-dev! I'm sorry this is so cryptic. @davidjgoss gave an excellent description - that's how it works. In my own words: The Cucumber CCK is just a corpus of Feature files, step definitions + hooks and generated messages. The messages are generated by fake-cucumber, which acts as the reference implementation. (It's not as complete and nice to use as cucumber-js, but I don't think it would be very hard to make it a contender if we wanted to). This corpus of files is used for Approval Testing of other Cucumber implementations. Other Cucumber Implementation can use the CCK to verify its own message output with that of the CCK. This It is not required that each implementation produce exactly the same output, but it should be equivalent. And believe it or not, we also do some manual 😱 testing by feeding the generated messages through |
Thanks @aslakhellesoy, that also helped a lot in thinking about how best to use the CCK testdata. Closing: Re-opened by mistake |
Summary
It is necessary to use the Cucumber-Compatibility-Kit (CCK) to track, and document, the status of a new Cucumber/Gherkin implementation, or to update the status of an existing Cucumber implementation.
However, the documentation is cryptic, and there is no working example(s) of building a CCK report. Naming the golden-source/definitive source
fake-cucumber
did not reduce confusion.Expected Behavior
Documentation that when followed leaves:
testdata
generated by golden-master (fake-cucumber
?)Current Behavior
No effective documentation.
Possible Solution
To update the status of
Cucumber-<Lang>
compared to golden-master (fake-cucumber
):>15.0
or from NodeSourcenpm
git clone https://github.com/cucumber/cucumber ~/src/cucumber
git clone https://github.com/bbqsrc/gherkin-rust ~/src/cucumber-rust
At this point we get a multitude of errors:
We aren't node gurus - and don't want to be - so we hacked around this trying to install
fake-cucmber
various ways, and eventually by removing'@cucumber/
from import statements.That then left us with 6 errors:
which brings us here....
Steps to Reproduce (for bugs)
See above.
Context & Motivation
How has this issue affected you? Blocking progress on validating and document the Cucumber-Rust implementation level of compatibility.
What are you trying to accomplish? Get the Cucumber-Rust implementation to a point where it can be included upstream.
Your Environment
v15.11.0
7.6.0
The text was updated successfully, but these errors were encountered: