Başarısız bir testi nereye itmeli?


14

GitHub veri havuzumdaki şube ayarlarını değiştirdim, böylece [sonraki] şubem bir çekme isteği yoluyla geçen bir CI derlemesi gerektiriyor.

Birkaç ekip üyesi ile başarısız testler hakkında bir tartışma yapıldı.

Bağlam uğruna ...

Depo yalnızca açıklaması, bu yüzden [usta] kod içeren varken içine PR'd oluyor bir [usta] şubesi vardır itibariyle olursa olsun büyük, küçük, bir düzeltme, bir beta, alfa olsun son sürümü, / yayın öncesi yapı.

[Next] dalı "varsayılan" daldır, burada "yayınlamaya hazır" kodunu tutmayı planlıyoruz ; teknik olarak bu dal her zaman [master] 'a girebilir ve serbest bırakılabilir.

Bireysel çatalların kendi geliştirme dalları ve katkıda bulunanlar [sonraki].

Önemsiz bir PR'ı incelediğimde, katkıda bulunanın geliştirici dalını "inceleme" dalımla birleştireceğim ve hızlı bir şekilde düzeltebildiğim şeyleri görürsem değişiklikleri / yeni (bazen başarısız) testleri ve PR'yi yapacağım katkıda bulunanın geliştirici şubesine geri; Değişikliklerimi birleştirdiklerinde, yeni başarısız testlerin geçmesini sağlayın ve sonra PR'larını senkronize eder ve PR'ı [next] ile birleştireceğim.

Ancak bu soru testleri geçmekle değil , başarısız olanlar ile ilgilidir.


Başarısız testler neyin düzeltilmesi gerektiğini belgelemektedir.

Bilinen hatalar için testler yazılmalıdır, böylece neyin işe yaramadığını bilelim.

Teknik olarak GitHub sorunları listesi ( ve / veya etiketler için filtrelenmiştir ) bunu da yapar. O iyi bir uygulama mı da belge hatalar için testler başarısız bir grup var?

A başarısız inşa [sonraki] "olmak salım hazır" Çocuk sahibi olmak için "hazır olma" gibi biraz sonra değiliz açıklayamazsınız hazır ... ama anlamına geleceğini - asla konum oldukça buna hazır ve bir şey, (değişken öneme sahip) bir yerde , kaçınılmaz olarak serbest bırakıldığında yanlış gidecektir.


Bu yüzden, sadece geçen testleri [sonraki] e itiyoruz. Başarısızlık testlerini nereye itmeli? Yani, PR / inceleme sürecinin dışında mı?

Örneğin, bir kullanıcı sorunlar listesinde yeni bir hata bildiriyor ve bunun için başarısız bir test paketi yazmak istiyorum - ne yapılması gerektiğini ve nerede yapılması gerektiğini belirtmek için yeni katkıda bulunanların almasını kolaylaştırıyor ve sonunda PR düzeltmesi.

Bu başarısız testleri nereye itmeliyim? Ya da başarısız testleri herhangi bir yere itmek iyi bir fikir mi?


@PhilipKendall iyi bir nokta! hala süreçlerimize ince ayar yapıyoruz; VS'nin "sonuçsuz" testlerle birlikte "yoksayılan" testleri nasıl ittiğini sevmiyorum - eğer daha düşük seviyeli testlerden biri başarısız olursa, testlerin yarısının başarısız olmasını istemiyoruz, bu yüzden önkoşullar karşılanmadığında onları sonuçsuz yapıyoruz ; bu, testlerin doğru nedenlerden dolayı başarısız olduğunu ve ne için yazıldıklarını test edemediklerinde "sonuçsuz" kalmasını sağlar. Biz bu (artık) bir sürü yok, onları görmezden yüzden olabilir bir seçenek olabilir ... ama sonra, bir olduğunu başarısız deneme o eğer gözardı ?
Mathieu Guindon

İnceleme sürecinin bir kısmı neden herhangi bir kod yazmanızı içeriyor? Bir hata görürseniz, PR'da yorum yapar ve isteğe bağlı olarak PR'yi reddedersiniz.
James

@James iyi, ben kod yazmayı seviyorum .. daha fazla katkıda bulunanlar katılmak gibi, ben gerçek kodlama daha GitHub bakım ve PR (halkla ilişkiler) işi yapıyorum!
Mathieu Guindon

Yanıtlar:


11

Bu durumda yapacağım şey, başarısız testleri "yok sayıldı" olarak işaretlemektir - bu şekilde testiniz devam eder, böylece gelecekte düzeltmeniz gerekenleri bilirsiniz, ancak kırık yapılarla sonuçlanmayacaksınız. .

Ayrıca, her testi sorunu gidermek için sorun izleyici referansı ile etiketlerseniz, işleri birbirine bağlamak için kolay bir yol sağlar.


4

Tam açıklama: Tartışmaya katılanlardan biriyim.

Havuzun ana dalı, ana dalı değil. Master ile birleşme herhangi bir "gerçek amaca" hizmet etmez ve bu dal bir dalın yapması gereken şeyleri yapmaz (yani hareket ).
Bu dalı en son sürüme Etiket olarak kötüye kullanıyorsunuz.

Şube kullanmak yerine bir Etiket kullanın. Serbest bırakmak istediğinizde, tıpkı bir konu dalı gibi bir "Serbest Bırakma Şubesi" nde gerekli adımları atarsınız. Sonra [next] ile birleştirir ve üzerine bir Tag koyarsınız.

[Sonraki] nin yerine getirdiği rol, bir ana dalın rolüdür. Sadece yayına hazır kod girer. Başka her şey bir [gelişmek] dalı olacaktır. Bir geliştirme dalı, stabilize edilecek işleri içerir . Bu şu anlama gelir: [master] 'ı kaldırın, daha önce yaptığınız şekilde [sonraki]' yi yeniden kullanın ve "daha az kararlı" iş için başka bir dal oluşturun .

Başarısız testlerin yapılması, olağanüstü hataları hatırlatan kuraldan daha istisna olduğu için, bu daha az kararlı dalı oluşturmak ve imha etmek için çok fazla sorun olmamalıdır.


1
En son sürümün [master] olması, düzeltme yayınlamak için son sürümden ayrılmayı kolaylaştırır; sonra düzeltme [sonraki] ve oradan her dev dal içine PR'd olabilir .. ya da bir şey eksik mi?
Mathieu Guindon

2
Sadece git checkout -b HotFix ReleaseTag(yani şubenin ödeme sözdizimini doğru oluşturduğunu hatırlıyorsam). Bu, ReleaseTag'den bir
Düzeltme
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.