What is the relationship of cucumber, cucumber_gherkin, ex_cucumber, and Cabbage? (Writing BDD tests)

Elixir has potentially great support for Behavior Driven Development and writing tests in the well-known Gherkin language, but online searches lead to a plethora of abandoned projects— and three-to-four maintained ones, whose relationship to one another is unclear:

So there are four totally independent efforts despite an official Cucumber-maintained package with the most regular releases? And no one has written about their process of choosing one of these? That is the state of things for people wanting to get started with writing BDD-style tests in Gherkin syntax for their Elixir project?

Maybe we can improve on that a little in this topic…

2 Likes

Well, welcome to open source. People check another project, say to themselves “I would do it another way” and there you go, you arrive at today’s state of affairs.

More seriously, I would just try to use 2-3 of those with multiple very concrete tests that must be 100% clear beforehand (i.e. you know exactly what you want to test) and evaluate for yourself.

2 Likes

I haven’t worked with Elixir professionally since March 2024 now, but in my last project I was using BDD tests with cabbage . I picked it overt ex_cucumber probably because it was the most used package (don’t recall exactly).

cucumber didn’t exist back then, but it seems worth trying.

3 Likes

I think part of the problem is most people abandon BDD pretty quickly. So someone gets really excited about it, like @dimitarvp mentioned doesn’t like the existing implementations then starts their own then realised BDD isn’t that great and move on abandoning development in the process.

BDD is dying/dead as a process these days for the most part so its not going to get a lot of attention. If you really like it a blog post outlining your findings would be a good place to essentially solve your problem for future people.

2 Likes