Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aloetesting/aloe

Behavior Driven Development using Cucumber for Python
https://github.com/aloetesting/aloe

aloe bdd gherkin python

Last synced: about 21 hours ago
JSON representation

Behavior Driven Development using Cucumber for Python

Awesome Lists containing this project

README

        

Aloe
====

[![Build status](https://img.shields.io/travis/aloetesting/aloe.svg)](https://travis-ci.org/aloetesting/aloe)
[![Build status](https://img.shields.io/appveyor/ci/aloetesting/aloe.svg)](https://ci.appveyor.com/project/aloetesting/aloe)
[![Coverage](https://img.shields.io/coveralls/aloetesting/aloe.svg)](https://coveralls.io/github/aloetesting/aloe)
[![PyPI](https://img.shields.io/pypi/v/aloe.svg)](https://pypi.python.org/pypi/aloe)

A [Gherkin][gherkin] runner for Python based on [Nose][nose] and
[Lettuce][lettuce].

Install:

pip install aloe

Read the [documentation][docs].

Invocation
----------

Pass the `--with-gherkin` argument to `nosetests` to run your BDD tests. You
may also pass the `--no-ignore-python` argument to run other nose discovered
tests as well.

The `aloe` command line tool is a wrapper for the `nose` runner, configured to
only run Gherkin tests. As such, the invocation is the same as `nose`, but the
following parameters are added:

* `-n N[,N...]` - only run the specified scenarios (by number, 1-based) in each
feature. Makes sense when only specifying one feature to run, for example

`aloe features/calculator.feature -n 1`

* `--test-class` - override the class used as a base for each feature.

* `--no-ignore-python` - run Python tests as well as Gherkin.

Migrating from Lettuce
----------------------

Aloe, started as a fork of Lettuce, tries to be compatible where it makes
sense. However, there are following incompatible changes:

* `each_scenario` and `each_background` callbacks are removed. Use
`each_example`.
* `-s` option for running particular scenarios is renamed to `-n`.
* Django-related functionality, including the `harvest` command, is moved to a
separate project, [Aloe-Django][aloe-django].
* `terrain.py` has no particular significance. It will be imported but only if
it exists at the same directory with the other step definition files, and not
above it.
* Scenario outlines must be declared with "Scenario Outline", and scenarios
without examples must use "Scenario" - Lettuce allowed using either.
* By default, the steps run are output as dots, corresponding to Lettuce
verbosity 1. To get colored output with steps printed as they run, use `-v 3`.

License
-------

Aloe - Cucumber runner for Python based on Lettuce and Nose

Copyright (C) <2015> Alexey Kotlyarov

Copyright (C) <2014-2015> Danielle Madeley

Copyright (C) <2010-2012> Gabriel Falcão

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see .

[gherkin]: https://cucumber.io/
[nose]: https://nose.readthedocs.io/
[nose-plugin-attrib]: https://nose.readthedocs.io/en/latest/plugins/attrib.html
[lettuce]: http://lettuce.it/
[gherkin-syntax]: https://cucumber.io/docs/reference
[aloe-django]: https://github.com/aloetesting/aloe_django
[docs]: http://aloe.readthedocs.io/