mlncn
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:
- cucumber_gherkin, with regular releases, maintained officially by Cucumber itself (though not listed) but nothing depending on it.
- cucumber, with a release as recently as June, and much more approachable documentation, depends on neither of the above nor nothing at all, and nothing depends on it.
- cabbage, which requires gherkin, both last updated in 2023. Appears to be the most-used but the documentation is so-so.
- ex_cucumber, last updated in 2022, which requires ex_gherkin, last updated 2021, has extensive but less approachable documentation (even the basic usage in the README. This one at least acknowledges the existence of one other option, cabbage, calling out several things including the lack of “multi-language support” and no support for Background (which is still listed as still pending on cabbage’s roadmap).
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…
Trending in Questions
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
Hello!
Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app.
I creat...
New
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
So my question is quite simple and i have found no conclusive answer on forum, google or AI.
Should we use :erlang.float for Integer to ...
New
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
apply_graft/2 doesn’t rewrite an add_many sub-workflow’s deps on an add step. Grafted jobs cancel with “upstream job was deleted”
Version...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixirconf-us
- #blog-post
- #ai
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming











Showing Posts 1 to 3- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
dimitarvp
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.
trisolaran
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 overtex_cucumberprobably because it was the most used package (don’t recall exactly).cucumberdidn’t exist back then, but it seems worth trying.sanswork
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.