Pular para o conteúdo
EN · PT

Gate: scenario-identity

Each scenario code identifies one scenario: no code repeated and no body copied under another title.

Propriedade Valor
Verificação scenario-identity
Confronta feature
Bloqueante por padrão — projeto novo sim
Bloqueante por padrão — projeto existente não — informa
gates:
- name: scenario-identity
on: [feature]
check: scenario-identity

Fonte: verificação · sua spec (em inglês)


Garante que cada cenário é distinguível, com código próprio e passos que não são cópias de outro.

Em termos simples: este gate garante que o seu software não cometa erros por descuido ou falta de sincronização. Se você ou uma inteligência artificial alterar um arquivo coberto por este gate, ele inspeciona o trabalho imediatamente.


Evita duplicação de cenários com títulos diferentes que fingem cobrir mais coisas do que realmente cobrem.

Sem este gate ativo, esse tipo de defeito passa despercebido pelos testes comuns e só estoura em produção ou durante refatorações dolorosas semanas depois.


Compara os códigos e os passos Given/When/Then dos cenários da feature, acusando repetições literais sob títulos diferentes.

  • ✓ Pass (Aprovado): Todos os cenários têm códigos únicos e passos diferenciados.
  • ✗ Fail (Reprovado): Dois cenários compartilham o mesmo código ou possuem passos idênticos.
  • ~ Indeterminado/Pending: Não se aplica.
  • Skip (Dispensado): Não se aplica.

Para ativar este gate no seu projeto, adicione o bloco abaixo na seção gates: do seu anchors.yaml:

gates:
- name: scenario-identity
on: [feature]
check: scenario-identity
blocking: true
measures: "cada cenário é distinguível por código e passos"

  • Quando ativar: Bloqueante imediato.
  • Fase de execução: Configure em when: [pre-commit, ci] para verificações rápidas, ou when: [pre-push, ci] para gates que rodam ferramentas mais pesadas.
  • Transição de maturidade: Comece com blocking: false para avaliar o estado atual do repositório com anchors check. Quando zerar as ocorrências, altere para blocking: true.

Se o anchors check acusar falha (✗) neste gate:

  1. Dê um código único a cada cenário e diferencie seus passos ou parâmetros de teste.
  2. Reexecute a verificação no terminal:
    Terminal window
    anchors check
  3. Se o gate suportar correção automática, você pode tentar o comando:
    Terminal window
    anchors check --fix