Ich habe gerade die Zweigeinstellungen in meinem GitHub-Repository geändert, sodass mein [nächster] Zweig einen übergebenen CI-Build durch eine Pull-Anfrage erfordert.
Es folgte eine Diskussion mit einigen Teammitgliedern über nicht bestandene Tests.
Um des Kontexts willen ...
Das Repository verfügt über einen [master] -Zweig, in den nur bei einem Release PR geschrieben wird. Daher enthält [master] den Code ab dem letzten Release, unabhängig davon, ob es sich um einen Major, einen Minor, einen Hotfix, eine Beta oder ein Alpha handelt. Pre-Release Build.
Der [nächste] Zweig ist der "Standard" Zweig, in dem wir den "release-ready" Code behalten wollen . Technisch gesehen kann dieser Zweig jederzeit in [master] aufgenommen und freigegeben werden.
Einzelne Gabeln haben ihre eigenen Entwicklerzweige und PR-Mitarbeiter für [next].
Wenn ich eine nicht triviale PR überprüfe, füge ich den Entwicklerzweig des Mitwirkenden in meinen "Überprüfungszweig" ein. Wenn ich Dinge sehe, die ich schnell beheben kann, werde ich Änderungen und neue (manchmal fehlgeschlagene) Tests und PR festschreiben / pushen zurück in den Entwicklerzweig des Mitwirkenden; Wenn sie meine Änderungen in zusammenführen, lassen Sie die neuen fehlgeschlagenen Tests bestehen und drücken Sie dann, um die PR zu synchronisieren. Anschließend füge ich die PR in [next] zusammen.
Bei dieser Frage geht es jedoch nicht um das Bestehen von Tests, sondern um die nicht bestandenen .
Fehlgeschlagene Tests dokumentieren, was behoben werden muss.
Bekannte Fehler sollten für Tests geschrieben sein, damit wir wissen, was nicht funktioniert.
Technisch macht das auch die GitHub- Issues- Liste (gefiltert nach Bugs und / oder kritischen Labels ). Ist es eine gute Praxis, auch eine Reihe von fehlgeschlagenen Tests durchzuführen, um Fehler zu dokumentieren?
Ein fehlgeschlagener Build auf [next] würde bedeuten, dass wir nicht bereit für die Veröffentlichung sind ... aber dann ist "bereit für die Veröffentlichung zu sein" ein bisschen wie "bereit zu sein", Kinder zu haben - dafür bist du nie ganz bereit und Irgendetwas (von variabler Wichtigkeit) wird mit der Veröffentlichung unvermeidlich schief gehen.
Wir drängen also immer nur darauf, die Tests zu bestehen. Wo kann man dann fehlgeschlagene Tests hinschieben? Ich meine, außerhalb des PR / Review-Prozesses?
Zum Beispiel meldet ein Benutzer einen neuen Fehler in der Problemliste und ich möchte eine fehlerhafte Testsuite dafür schreiben, um anzugeben, was getan werden muss und wo, was es für neue Mitwirkende einfacher macht, ihn zu finden und schließlich PR ein Update.
Wo soll ich diese fehlgeschlagenen Tests durchsetzen? Oder ist es überhaupt eine gute Idee, fehlgeschlagene Tests irgendwo hinzuschieben?