cupl
This is a tool for automatic gherkin feature files generation from PlantUML activity diagram.
Last updated 2 months ago by cinoss .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install cupl 
SYNC missed versions from official npm registry.

Cupl

A CLI tool for automatic CUcumber gherkin feature files generation from PLantuml activity diagram.

Version CircleCI Codecov Downloads/week License oclif

Cupl will help you transform .puml file of this diagram.

ATM Activity 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 to When steps of Gherkin file.
  • If condition must be a statement that end with ?, the question mark will be drop while parsing.

:x: is PIN correct?

:white_check_mark: PIN is correct?

  • Else branch must be descriptive.

:x: no

:x: false

:white_check_mark: PIN is incorrect

  • Activity must not contain (!), if it ends with !, the activity will be consider as an Given.

Basic

  1. create a .puml file and run
$ npx cupl FILE.puml
Feature: ...
...
  1. a .cupl.json file will be generated to allow you to
  • Rename Scenario ( by name field).
  • Rename rename steps ( by alias dictionary) and insert parameters.
  • Rename add @tag to Scenario and steps (by tags field - array of strings).
  • Rename change Gherkin dialect.
  • Provide examples.

Example:

{
  "$schema": "https://raw.githubusercontent.com/cinoss/cupl/master/src/config.schema.json",
  "global": {
    "alias": {
      "PIN is correct": "Entered Correct PIN number"
    },
    "dialect": "en"
  },
  "paths": {
    "PIN is correct|Balance is sufficient": {
      "name": "Successful transaction"
    },
    "PIN is correct|Insufficient balance": {
      "name": "Not enough money",
      "tags": ["important"]
    },
    "PIN is incorrect": {
      "alias": {
        "PIN is incorrect": "User's PIN is <pin>",
        "enter PIN": "User enters <input>"
      },
      "examples": [
        ["pin", "input"],
        ["123456", "325212"],
        ["123456", ""]
      ]
    }
  }
}
  1. Run cupl again with -w flag to generate a file.
$ npx cupl -w FILE.puml
Feature: ...
...
Generated [FILE].feature successfully!

Install globally

$ npm install -g cupl
$ cupl FILE
running command...
...

Syntax Support

Gherkin

  • [x] Feature
  • [x] Example (or Scenario)
  • [x] Given, When, Then, And, But for steps (or *)
  • [x] Tags
  • [x] Examples
  • [ ] Background
  • [ ] Scenario Outline (or Scenario Template)
  • [ ] Data Tables
  • [ ] Rule
  • [ ] Doc Strings
  • [ ] Comments

PlantUML Activity Diagram (New Syntax)

  • [x] start, stop, end
  • [x] if, elseif, endif
  • [x] title, end title
  • [x] note, end note
  • [x] SDL (|, <, >, /, ], })
  • [ ] repeat, repeat while, backward, while, end while
  • [ ] fork, end fork
  • [ ] Colors
  • [ ] Arrow
  • [ ] Connector
  • [ ] Grouping
  • [ ] Swimlanes
  • [ ] Detach

Current Tags

  • 0.1.9                                ...           latest (2 months ago)

13 Versions

  • 0.1.9                                ...           2 months ago
  • 0.1.8                                ...           2 months ago
  • 0.1.7                                ...           2 months ago
  • 0.1.6                                ...           2 months ago
  • 0.1.5                                ...           2 months ago
  • 0.1.4                                ...           2 months ago
  • 0.1.3                                ...           2 months ago
  • 0.1.2                                ...           2 months ago
  • 0.1.1                                ...           2 months ago
  • 0.1.0                                ...           2 months ago
  • 0.0.4                                ...           2 months ago
  • 0.0.2                                ...           2 months ago
  • 0.0.1                                ...           2 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 132
Dependencies (9)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |