Eu argumentaria que o teste com falha deveria ser adicionado, mas não explicitamente como "um teste com falha".
Como o @BenVoigt aponta em sua resposta , um teste que falha não necessariamente "quebra a compilação". Acho que a terminologia pode variar de equipe para equipe, mas o código ainda é compilado e o produto ainda pode ser enviado com um teste com falha.
O que você deve se perguntar nessa situação é:
O que os testes devem realizar?
Se os testes existem apenas para fazer com que todos se sintam bem com o código, adicionar um teste com falha apenas para fazer com que todos se sintam mal com o código não parece produtivo. Mas então, quão produtivos são os testes em primeiro lugar?
Minha afirmação é que os testes devem refletir os requisitos de negócios . Portanto, se foi encontrado um "bug" que indica que um requisito não foi atendido adequadamente, também é uma indicação de que os testes não refletem adequada ou totalmente os requisitos de negócios.
Esse é o bug a ser corrigido primeiro. Você não está "adicionando um teste que falhou". Você está corrigindo os testes para refletir melhor os requisitos de negócios. Se o código falhar na aprovação nesses testes, isso é bom. Isso significa que os testes estão fazendo seu trabalho.
A prioridade da fixação do código deve ser determinada pela empresa. Mas até que os testes sejam corrigidos, essa prioridade pode realmente ser determinada? A empresa deve estar armada com o conhecimento exatamente do que está falhando, como está falhando e por que está falhando para tomar suas decisões com prioridade. Os testes devem indicar isso.
Ter testes que não passam completamente não é uma coisa ruim. Ele cria um grande artefato de problemas conhecidos a serem priorizados e tratados de acordo. Ter testes que não são totalmente testados , no entanto, é um problema. Isso questiona o valor dos próprios testes.
Para dizer de outra maneira ... A compilação já está quebrada. Tudo o que você decide é se deve ou não chamar atenção para esse fato.