Skip to main content

A small Gherkin DSL parser that generates stub code

Project description

Cornichon

Build Status

Introduction

A small Gherkin DSL parser which reads in a feature file and produces stub code against a given test framework. This allows BDD to be integrated into new and existing projects without the need to depend on Cucumber.

The generated code is split into two files - the tests themselves and a set of scenario classes. This is to allow for:

  • easier version control of the source code
  • re-use of the scenario classes generation between unit test frameworks for the same language

The parser is written in Python and loads plug-ins for the desired output type.

Usage

A very basic test generator might look like

import cornichon


# Read the Gherkin DSL
f = open("example.feature", "r")
gherkin = f.readlines()
f.close()

# Only need to call Settings for the test framework as it builds
# on those settings for the scenarios
settings = cornichon.Settings("cpp/cppunittest")
settings["rootnamespace"] = "Cornichon::"
settings["scenarios file"] = "example.h"

# Generate the tests
fp = open("example.cpp", "w")
fp.write(cornichon.Generate(gherkin, settings, "cpp/cppunittest"))
fp.close()

# Generate the test scenarios
fp = open("example.h", "w")
fp.write(cornichon.Generate(gherkin, settings, "cpp/cppscenarios"))
fp.close()

The values of the settings can be listed,

cornichon.PrintSettings(settings)

An explanation of those values can be printed,

cornichon.HelpSettings("cpp/cppunittest")

The list of available output types can be printed,

cornichon.ListModules()

Test frameworks

C++

The scenario classes are generated using cpp/cppscenarios.

The supported frameworks are:

  • cpp/cppunittest - Microsoft's Visual C++ test framework
  • cpp/googletest - Google Test

C#

The scenario classes are generated using cs/csscenarios.

The supported frameworks are:

  • cs/unittesting - Microsoft's Unit Testing framework
  • cs/nunit - NUnit

Python

The scenario classes are generated using py/pyscenarios.

The supported frameworks are:

  • py/pyunit_tests - unittest, the standard Python unit testing framework

Visual Basic

The scenario classes are generated using vb/vbscenarios.

The supported frameworks are:

  • vb/unittesting - Microsoft's Unit Testing framework
  • vb/nunit - NUnit

Contributing

Contributions are welcome. Please follow the directory layout for the location of the plug-ins and their associated generated code for example.feature.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for cornichon, version 0.9.3
Filename, size File type Python version Upload date Hashes
Filename, size cornichon-0.9.3-py3-none-any.whl (36.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size cornichon-0.9.3.tar.gz (18.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page