-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Karate engine re-write - exit from Cucumber but retain 100% syntax backwards compatibility #444
Comments
not right now unless we see more demand for this. advise stick to cucumber v1.2.5 as far as possible. marking this ticket as "help wanted". |
plan to start work on this soon.
considering writing a grammar in ANTLR |
this work will involve taking a re-look at reports. would like to de-couple these from cucumber as well - but retain the cucumber JSON format additional capability proposed:
|
been doing analysis, this is going to be a lot of work ! but convinced this is top priority. not because we want to support that small percentage of users who insist on using Cucumber + Selenium. but because we want to be ready for Java 9/10 and we really don't need all the complexity and breaking changes that Cucumber v2 and v3 have introduced. I also personally do not agree with the decision the Cucumber team has made to use an out-of-JVM process (Go native binary) for Gherkin parsing in for Karate - we are clear. we love the JVM. it is what allows us to do mocks (netty) and performance testing (gatling) meanwhile, I can see that IntelliJ has yet to catch up with the v3 Cucumber changes: https://youtrack.jetbrains.com/issue/IDEA-193111 Not 100% sure about Eclipse, but we certainly don't care about the Lambda support: https COLON SLASH SLASH github.com/cucumber/cucumber-eclipse/issues/267 the worst case scenario is that Cucumber Java IDE support will show warnings because it can't find the "glue" etc. pefectly reasonable IMO. would be interested in hearing what others think. |
Would this affect the use of BDD-style tests (i.e feature files with scenarios/scenario outlines)? Also, would we lose the cucumber formatting and test run support within IDEs? The fact that Karate is based on cucumber was one of the attractions to this framework. |
@ayoolaogunsola thanks !
|
@ptrthomas Thanks for clarifying. I don't have a need to integrate with Cucumber so as long as Karate keeps its simplicity, no concerns here. It's working well for our needs so far. Thanks for a great tool. |
missed tagging this ticket but this commit has the initial implementation of the antlr grammar and even the execution life-cycle is working :) the next big task is reporting. |
engine class static methods has responsibility to execute feature json output should be near ready now, also result skipped logic in place
where the implementation of the call keyword has been switched to the new engine
the demos are working including reports TODO called steps support for the legacy cucumber-options, only tags and features new scenario-hooks strategy todo time reporting and hiding skipped features but it does look like the bulk of the work is over
Hi. Is there now a way to extend the DSL? I understand there was a discussion of it in #398. In my case, I want to make it simpler to build requests and provide reusable queries to responses. Something like:
So what I have now is a DSL specialized to our API. Would appreciate any advice on how I should approach this. Maybe even write my own ANTLR grammar? |
@thirdy I think I have been very clear in this comment: there's also some very early thoughts here, but this is not a priority until we move everything out of Cucumber: |
again forgot to tag this issue but this commit is a big milestone: d6e5f4b we have successfully removed all dependencies on cucumber except for the critical few needed for backwards compatibility the 2 reports (JSON, HTML) need to be worked on to bring them to the original state - but most of the pain is over |
I'm going to go ahead and mark this as fixed. this is a big deal and took far more work than I anticipated. we don't depend on the fate of the Cucumber-JVM project anymore. Please do try this out from the an interesting design decision is to continue to bundle the regarding the original issue by @vijayqaguy - you should be able to mix karate with newer cucumber versions. but IDE support may then break, which may require some community contribution to resolve. the new design of the step-definitions will make this easier (thin layer, using interfaces etc) again, if you can clone and test this, please do help ! |
found this twitter rant about Cucumber API breaking changes, saving this here for future reference |
saving this link for future reference, some discoveries the cucumber team made with the "go binary" approach: cucumber/common#425 (comment) looks like we did the absolute right thing. |
HELL YEAH ! 0.9.0 released |
For the visitors from Stackoverflow and Google it is worth noting that Cucumber JVM never used the go binaries and that since v8 Gherkin has a native Java implementation again. |
@mpkorstanje thanks for the update ! |
Any plans upgrade Cucumber version to 2 or 3?
We use Cucumber version 2 for our UI automation. Now if I import karate using maven, it conflicts with the version used for UI since karate using Cucumber version 1
The text was updated successfully, but these errors were encountered: