Her bir taahhütte testleri yürüten sürekli bir entegrasyon olduğunda, ortak bir en iyi uygulama tüm testlerin her zaman geçmesini sağlamaktır (diğer bir deyişle "derlemeyi kırmayın").
Bununla ilgili bazı problemler buluyorum:
Örneğin, biletlere karşılık gelen testler oluşturarak açık kaynaklı bir projeye yardımcı olamazsınız. Başarısız test içeren bir açık kaynak projesine bir Çekme İsteği önerirsem, derleme başarısız olarak işaretlenir ve proje, "derlemeyi bozacağı" için depoya birleştirilmesini istemez.
Ve ben senin repo başarısız testleri için kötü bir şey olduğuna inanmıyorum , bu izleyicide açık sorunları olması gibi. Bunlar düzeltilmeyi bekleyen şeyler.
Aynı şey bir şirket için de geçerli. TDD ile çalışıyorsanız, testleri yazamaz, testi gerçekleştiren mantık kodunu kaydedemez ve yazamazsınız. Bu, dizüstü bilgisayarımda 4-5 test yazdıysam, tatile gitmeden önce bunları taahhüt edemem demektir. Kimse işimi geri alamaz. Bunları, örneğin e-posta ile göndermek dışında bir iş arkadaşınızla "paylaşamıyorum". Ayrıca, bir kişi testleri yazarken diğeri ise modeli yazmayı önler.
Bütün bunlar, derleme işlemini / sürekli entegrasyonu yanlış mı / yanlış mı anlıyorum? Bana öyle geliyor ki, "geçme" / "geçmeme" çok dar bir göstergedir.
Sürekli entegrasyonu ve TDD'yi uyumlu hale getirmenin bir yolu var mı?
Belki "Yeni testler" (yani başarısız olabilir) ve "regresyon testleri" (yani gerektiğini ayırt etmek için bir standart çözüm / uygulama yoktur değil onlar işe kullanılan çünkü başarısız)?