Skip to content

Latest commit

 

History

History
71 lines (52 loc) · 7.25 KB

README.md

File metadata and controls

71 lines (52 loc) · 7.25 KB

Tip

🌟 NEWS!!! 🌟

We recently released the following improvements:

  • gpc-for-loop/Iterations (gpc-for-loop@1.1.0) - to define iterations and use those in the loop tags (gherking#91)

Hi there 👋

GherKing is a tool to make Gherkin smarter! It allows you to programmatically handle Cucumber/Gherkin feature files in your JavaScript/TypeScript code.

What can you do with GherKing?

  • You can use the gherkin-ast package to build and work with feature files in your code using an AST.
  • You can load and parse feature files to AST and save them back using the gherkin-io package and the gherkin-formatter to make them pretty.
  • You can use the gherking CLI tool (and the precompilers below) to build a precompiler for your feature files, adding more logic and magic 🌈 to your feature files.

Our precompilers

  • Filter - gpc-filter - to include or exclude scenario/outlines of feature files based on a cucumber-tag-expression.
  • For Loop - gpc-for-loop - to loop scenarios and scenario outlines to repeat them.
  • License - gpc-license - to add a license statement to the feature files.
  • Macro - gpc-macro - to create and execute macros.
  • Remove Comments - gpc-remove-comments - to remove all or particular types of semantic comments from the feature file.
  • Remove Duplicates - gpc-remove-duplicates - to remove duplicated tags or example data table rows.
  • Replacer - gpc-replacer - to replace keywords in the feature files.
  • Scenario Numbering - gpc-scenario-numbering - to add an index to all scenarios and scenario outline's name.
  • Scenario Outline Expander - gpc-scenario-outline-expander - to expand the Scenario Outlines to actual scenarios.
  • Scenario Outline Numbering - gpc-scenario-outline-numbering - to make all scenarios generated from scenario outlines unique.
  • Step Group - gpc-step-groups - to correct the gherkin keywords of steps to make the tests more readable.
  • Test Data - gpc-test-data - to load external data (JSON, CSV, or XLS/XLSX) into the examples table.

Precompilers we plan

  • Conditional Steps - to allow skipping steps based on certain conditions (examples table columns) (gherking#86)
  • Copy - to copy feature files and distribute them based on some logic (e.g., to different folders, based on a tag) (gherking#39)
  • Example Sampler - to chose a given number of random example (gherking#37)
  • Sorter - to sort scenario/outline based on certain conditions (gherking#52)
  • Splitter - to split each scenario/outline to separate feature files to improve parallelization (gherking#44)
  • Statistics - to gather useful statistics of the feature files (gherking#82)
  • Suite Generator - to sort feature files and scenarios/outlines in separate files based on suite tags (gherking#45)

Do you have an idea for a cool precompiler? Send your idea to us!

Precompilers made by the community

Do you have a precompiler you implemented? Send it to us! And we will list here!

Upcoming features

  • gherking/environment variables - to allow usage of environment variables in configuration to control precompilers and their attributes (gherking#90)
  • gherking/jumpstart command (in progress) - to kick-off usage of GherKing easier (gherking#66)
  • gpc-replacer/built-in tokens - to add the possibility to use UUID much more easily (gpc-replacer#4)
  • gherking/Controlling precompiler application - to control which precompiler is applied to a given feature file or which is not (gherking#73)

Do you have an idea for any new features? Send your idea to us!