Fork us

Configuração - behat.yml

O Behat tem um sistema de configuração muito poderoso baseado na configuração de arquivos YAML e perfis.

behat.yml

Todas as configurações acontecem dentro de um único arquivo de configuração no formato YAML. O Behat tenta carregar behat.yml ou config/behat.yml por padrão, ou você pode dizer ao Behat onde está o seu arquivo de configuração com a opção --config:

$ behat --config custom-config.yml

Todos os parâmetros de configuração neste arquivo são definidos sob um perfil com nome root (default: por exemplo). Um perfil é justamente um nome customizado que você pode usar para mudar rapidamente as configurações de teste utilizando a opção --profile quando executar a sua suite de funcionalidade.

O perfil padrão sempre é default. Todos os outros perfis herdam parâmetros do perfil default. Se você só precisa de um perfil, defina todos os seus parâmetros sob o default: root:

# behat.yml
default:
    #...

Variável de Ambiente - BEHAT_PARAMS

Se você quiser definir configurações do Behat, utilize a váriavel de ambiente BEHAT_PARAMS:

export BEHAT_PARAMS='{"extensions" : {"Behat\\MinkExtension" : {"base_url" : "https://www.exemplo.com/"}}}'

Você pode configurar qualquer valor para qualquer opção que esteja disponível no arquivo behat.yml. Basta fornecer opções no formato JSON. O Behat utilizará essa opção como padrão. Você sempre pode sobrepô-las com as configurações no arquivo behat.yml do projeto (este tem maior prioridade).

Tip

A fim de especificar um parâmetro em uma variável de desenvolvimento, o valor não deve existir em seu behat.yml

Tip

NOTA: No Behat 2.x está variável estava no formato URL. Ele foi modificado para utilizar o formato JSON.

Filtros Globais

Enquanto é possível especificar filtros em uma parte da configuração da suite, por vezes você irá querer excluir certos cenários através da suite, com a opção de sobrepor os filtros pela linha de comando.

Isto é conseguido através da especificação de filtros na configuração do gherkin:

# behat.yml

default:
    gherkin:
        filters:
            tags: ~@fazendo

Nesta instância, cenários com a tag @fazendo serão ignorados a menos que o comando seja executado com um filtro personalizado, por exemplo:

vendor/bin/behat --tags=fazendo

Autoloading Personalizado

Algumas vezes você irá precisar colocar a sua pasta de funcionalidades em outro lugar que não seja o padrão (por exemplo app/features). Tudo que você precisa fazer é especificar o caminho que você precisa carregar automaticamente pelo behat.yml:

# behat.yml

default:
    autoload:
        '': %paths.base%/app/features/bootstrap

Se você deseja o namespace de suas funcionalidades (por exemplo: para ser compatível com a PSR-1) você irá precisar adicionar o namespace às classes e também dizer ao behat onde carregá-las. Aqui contextos são um array de classes:

# behat.yml

default:
    autoload:
        '': %paths.base%/app/features/bootstrap
    suites:
        default:
            contexts: [My\Application\Namespace\Bootstrap\FeatureContext]

Note

A utilização do behat.yml para auto carregar somente é permitida pela PSR-0. Você pode também utilizar o composer.json para auto carregar, que será também permitido pela PSR-4

Formatadores

Formatadores padrão podem ser habilitados especificando-os no perfil.

# behat.yml

default:
    formatters:
        pretty: true

Extensões

Extensões podem ser configuradas como esta:

# behat.yml

default:
    extensions:
        Behat\MinkExtension:
            base_url: http://www.example.com
            selenium2: ~