behave/behave — pull request #240 by attilammagyar (2014-07-12 01:44:09+00:00)
Title: switchable alternate step implementations

When developing software that has to interact with many third party
components (e.g. control the behavior of various OS settings and
components, talk to external servers and databases and co.), it can come
handy to have two different sets of step automations for the same
feature files:

* one for a quick and reliable integration check that can
be run frequently in a development environment (without the external
resources that need to be allocated and released or might become
flaky due to network latency or high load, etc.) which implements
steps by inspecting what comes out from the software on its
boundaries to external components,

* and another, that verifies the behavior of the full stack in a
testing copy of production systems and networks using step
implementations that inspect the effect of the software on the
external components.

This patch provides a solution for such use cases by allowing the name
of the "steps/" directory and "environment.py" to be changed in a
consistent way with a single configuration option or command line
parameter as described in "step.alternate_step_implementations.feature".

(Travis-CI: https://travis-ci.org/attilammagyar/behave)