2011-10-31 35 views
6

Bu sabah testlerimi yaptım ve 2 başarısızlık var. Ama birkaç gün boyunca hiçbir kodu değiştirmedim ve tüm testler geçiyordu.Git, Git'i bilmeden kodun değişmesi mümkün mü?

Git göre, (test çıkışı coverage.data hariç) herhangi bir değişiklik olmamıştır. gitk başka hiçbir değişiklik göstermiyor.

Kod, kod değiştiğinde nasıl biliyor? SSD hatası/hatası neden olabilir mi?

Olanları anlamanın en iyi yolu nedir?

DÜZENLEME: Birim Test çerçeve ile Ruby on Rails çalışma.

+4

, bkz. – manojlds

+0

Bu kadardı. Ayın son günü başarısız olur. –

cevap

10

Ben testler neden başarısız olduğunu tespit ederek başlamak istiyorum ve bu daha önce geçti olabileceğine dair olarak size bazı ipuçları verebilir. Bazen bir zamanlama sorunu, aralıklı bir arıza, test kablo demetinin dışında bir şey, veri değişimi, tarih veya saat değişikliği, her türlü eşya.

+0

Evet, bu bir zamanlama sorunudur. Date.today hesaplanıyor - 6. ay + 6. ay. 31 günü olan ayın son günü başarısız olur! (29 Ağustos'ta olduğu gibi (sıçrama olmayan yıllarda) ve 30, sanırım). –

+2

Evet, haklısın. Ben çalıştırdığınızda 'DateTime.Today.AddMonths (-6) .AddMonths (6) .ToShortDateString();' ayıklayıcı altında, ben '2011/10/30' olsun - Öyle görünüyor ben 6mon çıkarma yaparken, geri alırsınız 30 Nisan için (Nisan hiçbir gün 31 beri), ama buna 6mon eklerken o zaman, ben Ekim 30th alırsınız. Sanırım bu mantıklı. –

2

Kişisel depo Git olmadan herhangi bir değişiklik haberi ve her durumda repo dosyaları elde edebilmek için günlükleri almak için gerekli olduğundan bir yere giriş olamaz. Başarısızlıkların, makinede testlerle aynı anda çalıştırılmaması gereken bir şeyden kaynaklanmadığını veya beklemediğiniz bir yarış durumu olabileceğini kontrol edersiniz.

9

Mike'ın probleminizi bulduğunu görüyorum (küçük cevap kutusunu işaretleyin lütfen). Kod Git bu konuda bilmeden değişmesi için

Evet, bu mümkün. Başarısızlığa neden olan dosya, belki de geçici bir test dosyası veya fikstür, .gitignore veya .git/info/exclude içinde yoksayılabilir. git clean -dxf yapılıyorsa, check (temiz), git olarak bilinmeyen herhangi bir şeyin temizliğini silecektir. git status --ignored, git tarafından yok sayılan dosyaları gösterecektir. Bu durumda, test görevlinizin bir parçası olarak daha iyi bir test temizliği eklemek istersiniz.

kuşaklar için buraya git için herhangi bir kod değişikliği görülebilir orada olmadan başarısız olabilir yolları testlerin kısa bir listesi:

  • "Geçici" test dosya ve fikstürler kirli olabilir.
  • "Geçici" veritabanları ve tablolar kirli olabilir.
  • Zamana veya tarihe duyarlıdır.
  • Ağ kaynaklarını kullanır ve değişti.
  • Derleyici değiştirildi.
  • Kullanılan yüklü kitaplıklar değiştirildi.
    • Kitaplıkların kullandığı kütüphaneler değiştirildi.
  • çekirdek
  • değiştirildi.
  • Kullanılan tüm sunucular (veritabanları, web sunucuları, vb.) Değiştirildi.
  • Paralel işlemeyi kullanır ve ince bir hata yalnızca bazen oluşur.
  • Disk (veya geçici dosyaların bulunduğu dosya sistemi) dolu.
  • Disk (veya geçici dosyaların nereye gittiği dosya sistemi) bozuk.
  • Bellek/disk/işlem/dosya yığını kotalarınız azaltıldı.
  • Makinede bellek bitmiştir.
  • Makinenin dosya ellerinin tükendi.
  • Bu rastgele üretilen veri ile armatürleri kullanır ve bir hata köşe bazı oluşturulur. Bugün başarısız olduğundan bu bir ayın son gününde bazı tarih sorunu, 31 gün, özellikle biriyse
İlgili konular