Direi che il test fallito dovrebbe essere aggiunto, ma non esplicitamente come "test fallito".
Come sottolinea @BenVoigt nella sua risposta , un test fallito non "interrompe necessariamente la costruzione". Immagino che la terminologia possa variare da squadra a squadra, ma il codice continua a essere compilato e il prodotto può ancora essere spedito con un test non riuscito.
Quello che dovresti chiederti in questa situazione è,
Quali sono i test che si intende realizzare?
Se i test sono lì solo per far sentire tutti bene con il codice, quindi aggiungere un test fallito solo per far sentire tutti male con il codice non sembra produttivo. Ma poi, quanto sono produttivi i test in primo luogo?
La mia affermazione è che i test dovrebbero riflettere i requisiti aziendali . Pertanto, se viene trovato un "bug" che indica che un requisito non è soddisfatto in modo adeguato, significa anche che i test non riflettono correttamente o pienamente i requisiti aziendali.
Questo è il bug da correggere per primo. Non stai "aggiungendo un test non riuscito". Stai correggendo i test per riflettere meglio i requisiti aziendali. Se il codice non riesce a superare questi test, è una buona cosa. Significa che i test stanno facendo il loro lavoro.
La priorità di fissare il codice deve essere determinata dall'azienda. Ma fino a quando i test non saranno fissi, tale priorità può essere veramente determinata? Il business dovrebbe essere armato con la conoscenza di cosa sta esattamente fallendo, come sta fallendo e perché sta fallendo al fine di prendere le loro decisioni in via prioritaria. I test dovrebbero indicare questo.
Avere test che non superano del tutto non è una brutta cosa. Crea un grande manufatto di problemi noti che devono essere prioritari e gestiti di conseguenza. Avere test che non testano completamente , tuttavia, è un problema. Mette in discussione il valore dei test stessi.
Per dirlo in un altro modo ... La build è già rotta. Tutto quello che stai decidendo è se richiamare l'attenzione su questo fatto.