Testler değerlidir. En azından, birisinin onları yazmak için zaman harcaması gerektiğini düşündüklerini kaydeder, bu yüzden bir zamanlar birileri için bir değeri olabilir. Şansınız varsa, ekibin üzerinde çalıştığı tüm özelliklerin ve hataların tam bir kaydını içereceklerdir - ancak dikkatlice düşünülmeden keyfi bir test kapsamı numarasına ulaşmanın bir yolu olabilirler. Onlara bakana kadar, burada hangi durumda olduğunu bilemezsiniz.
Testlerinizin çoğu zamanın çoğunu geçerse, o zaman sadece mermiyi ısırın ve başarısız olan birkaç testin ne yapmaya çalıştığını bulmak için zaman harcayın ve bir dahaki sefere işin daha kolay olması için bunları düzeltmek veya geliştirmek için zaman ayırın. Bu durumda, az sayıdaki başarısızlık testi ile ne yapılması gerektiğine dair bir tavsiye için, her bir test bölümünün amacını belirleme bölümüne atlayın .
Öte yandan, şu an Kırmızı bir yapıyla, bir süredir geçmemiş yüzlerce hatta binlerce testle karşı karşıya kalabilirsiniz ve Jenkins uzun zamandır Yeşil değildi. Bu noktada, Jenkins inşa durumu işe yaramaz hale geldi ve check-in işleminizle ilgili sorunların önemli bir göstergesi artık çalışmıyor. Bunu düzeltmeniz gerekir, ancak oturma odanızdaki karmaşayı toparlarken tüm ilerlemeyi durduramazsınız.
Başarısız olan testlerden hangi değerin geri kazanılabileceğini belirlemek için gerekli arkeolojiyi yaparken akıl sağlığınızı korumak için, aşağıdaki adımları öneriyorum:
Başarısız olan testleri geçici olarak devre dışı bırakın.
Bunu açıklayamayacağınız, ortamınıza bağlı olarak yapabileceğiniz birkaç yol var, ki açıkça tanımlamıyorsunuz, bu yüzden belirli bir tanesini gerçekten tavsiye edemiyorum.
Bazı çerçeveler beklenen hatalar kavramını desteklemektedir. Sizinkine göre, o zaman bu harika, çünkü bu kategoride kaç testin kaldığına dair bir geri sayım göreceksiniz ve hatta bazıları beklenmedik bir şekilde geçmeye başlarsa size bilgi verilecek.
Bazı çerçeveler test gruplarını destekler ve Hudson'a yalnızca bazı testleri çalıştırmasını ya da bir test grubunu atlamasını söylemenizi sağlar. Bu, zaman zaman geçip geçmediğini görmek için test grubunu el ile çalıştırabileceğiniz anlamına gelir.
Bazı çerçeveler, Yok Sayılacak tek testleri açıklama eklemenize veya başka türlü işaretlemenize izin verir. Bu durumda onları grup olarak çalıştırmak daha zordur, ancak sizi rahatsız etmelerini önler.
Testleri normalde derlemede bulunmayan bir kaynak ağacına taşıyabilirsiniz.
Ekstremitede, kodu sürüm kontrol sisteminin HEAD'sinden silebilirsiniz, ancak bu daha sonra üçüncü fazın ne zaman tamamlandığını tanımayı zorlaştırır.
Amaç, Jenkins'in en kısa sürede Yeşil'e gitmesini sağlamaktır, böylece en kısa zamanda doğru yönde hareket etmeye başlayabilirsiniz.
Testleri alakalı tutun.
Kod eklerken veya değiştirirken yeni testler eklemek için çözün ve geçen tüm testleri geçmeyi taahhüt edin.
Testler, başlangıçta iyi yazılmış testler olmadığı gerçeği dahil olmak üzere çeşitli nedenlerle başarısız olabilir. Ama Jenkins bir kez yeşile döndüğünde, onu böyle tutmak gerçekten önemli.
İyi sınamalar yazmaya alışın ve sınamalar başarısız olursa büyük bir anlaşma yapın.
Her test için amacı belirleyin.
Engelli testlerini birer birer yapınız. En sık değiştirdiğiniz modülleri etkileyenlerle başlayın. Testin amacını ve başarısızlığın nedenini belirleyin.
Bilerek kod tabanından çıkarılmış olan bir özelliği test ediyor mu? O zaman muhtemelen silebilirsiniz.
Henüz kimsenin farketmediği bir hatayı mı yakalamak? Testi tekrar yapın ve hatayı düzeltin.
Hatalı varsayımlarda bulunduğundan başarısız oluyor mu (örneğin, düğme metninin her zaman İngilizce olacağını varsayıyorsunuz, ancak şimdi birden fazla dilde başvurunuzu yerelleştirdiniz)? Ardından testin tek bir şeye odaklanmasını sağlayın ve ilgisiz değişikliklerden olabildiğince izole edin.
Test tüm uygulama boyunca yayıldı mı ve bir Sistem testini temsil ediyor mu? Ardından ana Jenkins test takımınızdan çıkarın ve daha az çalışan Regression odasına ekleyin.
Uygulamanın mimarisi tanınmayacak kadar değişti mi, bu nedenle test artık yararlı bir şey yapmıyor mu? Silin.
Test kod kapsamı istatistiklerini yapay olarak artırmak için eklendi mi, ancak gerçekte kodun doğru bir şekilde derlendiğini ve sonsuz bir döngüye girmediğini doğrulamaktan başka bir şey yapmıyor mu? Ya da, test sadece seçtiğiniz alaycı çerçevenin az önce söylediğiniz sonuçları verdiğini onaylar. Silin.
Bunun bir sonucu olarak, bazı testler duracak, bazıları değiştirilmiş, bazıları çoklu bağımsız, ısırık büyüklüğünde parçalara ayrılmış, bazıları ise kaldırılmış. Halen yeni gereksinimler konusunda ilerleme kaydettiğiniz sürece, bunun gibi teknik borçlarla başa çıkmak için biraz zaman ayırmak, yapılması gereken şeydir.