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: ~