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/nunit - NUnit
  • cs/unittesting - Microsoft's Unit Testing framework

Python

The scenario classes are generated using py/pyscenarios.

The supported frameworks are:

  • py/pytests - pytest, the pytest framework
  • 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/nunit - NUnit
  • vb/unittesting - Microsoft's Unit Testing framework

Contributing

Contributions are welcome. Please read the testing documentation.

Project details


Download files

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

Source Distribution

cornichon-0.9.6.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

cornichon-0.9.6-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

File details

Details for the file cornichon-0.9.6.tar.gz.

File metadata

  • Download URL: cornichon-0.9.6.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for cornichon-0.9.6.tar.gz
Algorithm Hash digest
SHA256 bf56377a4fcb286397d14ebf4cd41d4bca102afabaff81b293070beaafd4448e
MD5 cf58d63646b3f628b849e3136fd16a6f
BLAKE2b-256 384bf76c4f9d11e4543c9807b458f50132f95b30d16f15c6f541e724848a2247

See more details on using hashes here.

File details

Details for the file cornichon-0.9.6-py3-none-any.whl.

File metadata

  • Download URL: cornichon-0.9.6-py3-none-any.whl
  • Upload date:
  • Size: 29.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for cornichon-0.9.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e241caadf7823d7c2a2a702494abbf099f0541296ae4f5d936aeef7e2c030be0
MD5 75bdb921d2352eac6cbf6821069b71ca
BLAKE2b-256 96579001d4e785ec03f3b6f207377eb0f916333f2d8b0bdb9d49ef9686ad288c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page