Eu diria que o teste de falha deve ser adicionado, mas não explicitamente como "um teste de falha".
Como a @BenVoigt aponta em sua sua resposta , um teste que falhou não necessariamente "quebra a compilação". " Eu acho que a terminologia pode variar de equipe para equipe, mas o código ainda compila e o produto ainda pode ser enviado com um teste de falha.
O que você deve se perguntar nesta situação é,
What are the tests meant to accomplish?
Se os testes estiverem lá apenas para fazer com que todos se sintam bem com o código, adicionar um teste com falha apenas para que todos se sintam mal com o código não parece ser produtivo. Mas então, quão produtivos são os testes em primeiro lugar?
Minha afirmação é que os testes devem ser um reflexo dos requisitos de negócios . Portanto, se um "bug" for encontrado indicando que um requisito não foi atendido corretamente, então é também uma indicação de que os testes não refletem adequadamente ou totalmente os requisitos do negócio.
Esse é o bug a ser corrigido primeiro. Você não está "adicionando um teste com falha". Você está corrigindo os testes para refletir com mais precisão os requisitos de negócios. Se o código falhar nos testes, isso é bom. Isso significa que os testes estão fazendo o trabalho deles.
A prioridade de consertar o código deve ser determinada pela empresa. Mas até que os testes sejam corrigidos, essa prioridade pode realmente ser determinada? O negócio deve estar armado com o conhecimento de exatamente o 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 totalmente não é uma coisa ruim. 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 testes em si.
Para dizer isso de outra maneira ... A compilação já está quebrada. Tudo o que você está decidindo é se deve ou não chamar a atenção para esse fato.