cwellm / GitHub_Action

0 stars 0 forks source link

Cucumber Modules? #1

Open cwellm opened 8 months ago

cwellm commented 8 months ago

@luke-hill

I saw that you filed an issue in The Cucumber C++ Repo and have been working on some of the Cucumber modules. I do not yet completely understand the relationship and meant usage of some parts. Could you have some words of clarification about it?

In particular, there are these two modules:

which are both meant, among other things, to decouple the Gherkin language from Cucumber. First of all: What does "Cucumber" mean, in this context? Is it one of the fully implemented drivers, like in Ruby and JVM?

And then, what different goals do the abovementioned components have, and how can they play together?

Thanks very much in advance! :-)

luke-hill commented 7 months ago

So the cucumber cpp "flavour" (We call them flavours or other words to describe different languages using cucumber, such as java/javascript/ruby e.t.c), is a bit of a tricky beast. That is because it is an official version, but it is engineered slightly differently.

It is engineered to use a "wire" server. That is one that intercepts calls, and passes them based on it's interpretation. The wire server then uses the internals from cucumber-ruby.

https://github.com/cucumber/common is now just a documentation repo that explains the various moving parts. I can explain one example for one language.

Cucumber-Ruby is my example

Now you see how complex the internals of a cucumber implementation are, it might explain why pivoting from not using it's own internals to using it's own internals is no small feat.