Cupl
A CLI tool for automatic CUcumber gherkin feature files generation from PLantuml activity diagram.
Cupl will help you transform .puml
file of this diagram.
Into this Gherkin feature description
Feature: Simple ATM withdrawal No PIN retry, No Amount re-enter Scenario: Successful transaction Given Entered Correct PIN number And Balance is sufficient When enter amount Then dispense notes And print receipt And eject the card @important Scenario: Not enough money Given Entered Correct PIN number And Insufficient balance When enter amount Then display "Insufficient balance" And eject the card Scenario Outline: PIN is incorrect Given User's PIN is <pin> When insert card And User enters <input> Then display "incorrect PIN" And eject the card Examples: | pin | input | | 123456 | 325212 | | 123456 | |
Usage
Conventions
- User/Core activity must start with
@
symbol, these will go toWhen
steps of Gherkin file. - If condition must be a statement that end with
?
, the question mark will be drop while parsing.
❌
is PIN correct?
✅
PIN is correct?
- Else branch must be descriptive.
❌
no
❌
false
✅
PIN is incorrect
- Activity must not contain (!), if it ends with !, the activity will be consider as an
Given
.
Basic
- create a
.puml
file and run
$ npx cupl FILE.pumlFeature: ......
- a
.cupl.json
file will be generated to allow you to
- Rename
Scenario
( byname
field). - Rename rename steps ( by
alias
dictionary) and insert parameters. - Rename add
@tag
toScenario
and steps (bytags
field - array of strings). - Rename change Gherkin dialect.
- Provide examples.
Example:
- Run
cupl
again with-w
flag to generate a file.
$ npx cupl -w FILE.pumlFeature: ......Generated [FILE].feature successfully!
Install globally
$ npm install -g cupl$ cupl FILErunning command......
Syntax Support
Gherkin
- Feature
- Example (or Scenario)
- Given, When, Then, And, But for steps (or *)
- Tags
- Examples
- Background
- Scenario Outline (or Scenario Template)
- Data Tables
- Rule
- Doc Strings
- Comments
PlantUML Activity Diagram (New Syntax)
-
start
,stop
,end
-
if
,elseif
,endif
-
title
,end title
-
note
,end note
- SDL (
|
,<
,>
,/
,]
,}
) -
repeat
,repeat while
,backward
,while
,end while
-
fork
,end fork
- Colors
- Arrow
- Connector
- Grouping
- Swimlanes
- Detach