Si no conoces  behave por favor  visita Behave con Python

Behave trabaja con tres tipos de archivos:

  1.  Archivos de características (Feature files) escritas principalmente por analistas de negocios, patrocinadores y cualquier persona que desee describir escenarios de comportamiento.
  2. Un directorio de “pasos” (steps) con la complementación de pasos de Python para los escenarios.
  3. Adicionalmente tiene environmental controls el cual es código que se ejecuta antes y después de los pasos o los escenarios.

Estos archivos son tipicamente iniciados en un directorio llamado “Features”, el cual necesita un mínimo requerimiento directorios de características (Features)

features/
features/everything.feature
features/steps/
features/steps/steps.py

O un directorio mas complejo podría verse así:

features/
features/signup.feature
features/login.feature
features/account_details.feature
features/environment.py
features/steps/
features/steps/website.py
features/steps/utils.py
Ejemplo

Creamos un directorio llamado features, dentro de el definiremos nuestro primer escenario:

# archivo: features/ejemplo.feature
Feature: Mostrando el comportamiento de Behave (Ejemplo)

Scenario: Corriendo un caso prueba
    Given Nosotros corremos nuestro primer programa con behave
    When Nosotros implementamos el primer caso
    Then Behave probara nuestro caso, !por nosotros!

Luego de definir nuestro escenario ahora realizaremos con python la automatización de nuestra prueba.

# Archivo:features/steps/ejemplo_pasos.py
from behave import given, when, then

@given('Nosotros corremos nuestro primer programa con behave')
def step_impl(context):
    pass

@when('Nosotros implementamos el primer caso')
def step_impl(context):
    assert True is not False

@then('Behave probara nuestro caso, !por nosotros!')
def step_impl(context):
    assert context.failed is False

Luego de terminar de definir la automatización procedemos a ejecutar nuestro ejemplo:

Dentro del directorio principal (Features) ejecutamos el comando:

behave

El cual nos mostrara en pantalla la siguiente información si todo salio bien.

Feature: Mostrando el comportamiento de Behave (Ejemplo) # ejemplo.feature:2

  Scenario: Corriendo un caso prueba                           # ejemplo.feature:4
    Given Nosotros corremos nuestro primer programa con behave # steps/ejemplo_pasos.py:5 0.000s
    When Nosotros implementamos el primer caso                 # steps/ejemplo_pasos.py:9 0.000s
    Then Behave probara nuestro caso, !por nosotros!           # steps/ejemplo_pasos.py:13 0.000s

1 feature passed, 0 failed, 0 skipped
1 scenario passed, 0 failed, 0 skipped
3 steps passed, 0 failed, 0 skipped, 0 undefined
Took 0m0.000s

Si deseamos una visualización diferente podemos darle un formato diferente ejecutando

behave --format=plain --show-timings

Y nos mostrara en consola la siguiente información

Feature: Mostrando el comportamiento de Behave (Ejemplo)

  Scenario: Corriendo un caso prueba
    Given Nosotros corremos nuestro primer programa con behave ... passed in 0.000s
    When Nosotros implementamos el primer caso ... passed in 0.000s
    Then Behave probara nuestro caso, !por nosotros! ... passed in 0.000s

1 feature passed, 0 failed, 0 skipped
1 scenario passed, 0 failed, 0 skipped
3 steps passed, 0 failed, 0 skipped, 0 undefined
Took 0m0.000s

Podemos automatizar diferentes tipos de comportamientos los cuales nos servirán para  testear pruebas unitarias dentro de nuestro desarrollo de software, así como llegar a implementar diferentes tipos automatizaciones.

Puedes encontrar el código fuente de este ejemplo en:
https://github.com/GLUD/Guide-Behaver/tree/master/features