cucumber-jvm
cucumber-jvm copied to clipboard
Architecture diagram for Cucumber JUnit Platform Engine
🤔 What's the problem you've observed?
When using Gradle/Maven with Cucumber and JUnit 5 we have a few layers of framework.
Maven Surefire -> JUnit Platform -> Jupiter Engine
Maven Surefire -> JUnit Platform -> Cucumber Engine -> Cucumber
Maven Surefire -> JUnit Platform -> Suite Engine -> Cucumber Engine -> Cucumber
Understanding this is important when it comes to the behavior of cucumber.features and the relevance of -Dsurefire.includeJUnit5Engines=cucumber and -Dsurefire.includeJUnit5Engines=junit-platform-suite.
Currently this leads of questions such as:
- I'm using
cucumber.features, why are my tests executed twice - The configuration from my suite is not included when using
cucumber.features. - Why should
cucumber.featuresnot be used in combination with@Suite - Why is the Suite engine used as a workaround for Maven and Gradle
✨ Do you have a proposal for making it better?
Create a Mermaid diagram with the architecture. Then try to add information that references this diagram to clarify the questions above.
📚 Any additional context?
No response