2012-05-10 28 views
9

'de aşağı akışlı parametrelenmiş işlerin sonuçlarının toplanması Jenkins Parametreli Tetikleyici Eklentisi kullanılarak bir test parametresi olarak birden çok Test işini tetikleyen bir Jenkins Build işim var. Bu, tüm testlerin doğru şekilde yürütüldüğü çoklu yürütücüler üzerinde bir dizi test başlatıyor.Jenkins

Şimdi sonuçları 'Agrega alt test sonuçları -> Tüm alt testlerin otomatik olarak toplanması' ile toplamak istiyorum. Bunu Yapım işinde etkinleştirdim ve parmak izi basmayı ayarladık, böylece bunlar alt iş olarak kabul edildi.

Testi # 1- #

ben "Toplanan Test Sonuçları" tıklayın 3

Mansap Oluşturur: mansap kurar gibi Yapı jobs lastBuild sayfasında Onların tanınan görebilirsiniz Ancak sadece bunların en sonunu gösterir (Test # 3). Bu iş her zaman aynı testleri çalıştırıyorsa, ancak benim test takımımın farklı bölümlerini çalıştırıyorsa, bu iyi bir davranış olabilir.

Bu, tüm ilgili alt test Testlerini bir araya getirmenin bir yolunu bulabilir miyim?

Ek: Test işini çoğalttığınızda, toplu Test Sonuçları işe yarar. Çok sayıda test süiti olduğu için bu ideal değil.

+1

Aşağıdan sınama sonuçlarını bir araya getirme konusunda çok fazla sorunla karşılaştım, bunları kendim 'elimle' topladığım kadar sona erdi: alt işlerin bitmesini ve test raporlarını ana bilgisayara bırakmasını beklemek. –

+0

Otomatik kümelenmeye sahip olmak (bir işi çoğaltarak) elde ettiğimi gerçekten umduğum gibi göremiyorum (test hiyerarşilerini birleştirmiyor veya toplu grafikler yapmıyor). Parametreli işler için elle yapılan bir çözümü kabul ediyorum. –

cevap

3

I (yorumlarda belirtildiği gibi) manuel çözüm açıklamakta ve bunları daha sonra gerekirse daha ayrıntılı bilgi vereceğiz:

P mansap iş olmak ebeveyn iş ve D olmak Let (yaklaşımı çoklu alt işlere kolayca genişletebilirsiniz). P arasında

  1. bir örneği (yapı) D sitesindeki bitirmek için bir yapı aşama (post-build adım olarak değildir) ve bekler ile Parameterized Trigger Plugin ile D çağırır. Diğer parametreler ile birlikte, PD bir parametre geçer - diyelim PARENT_ID-P 's yapı en BUILD_ID dayalı.
  2. D testleri yürütür ve bunları yapay eserler olarak arşivler (jUnit raporlarıyla birlikte - varsa).
  3. P sonra PARENT_IDile D uygun yapı bulan bir dış Python (veya iç Groovy) komut yürütüldüğünde (eğer D yapılarında yineleme ve PARENT_ID parametresinin değeri inceleyiniz). Komut dosyası daha sonra bu ürünleri D'dan P'a ve P yayınlarından kopyalar.

Python kullanılıyorsa (bu benim yaptığım şey) - Python JenkinsAPI wrapper'u kullanır.Groovy kullanıyorsanız - Groovy Plugin'u kullanın ve komut dosyanızı sistem betiği olarak çalıştırın. Daha sonra Jenkins'e Java API aracılığıyla erişebilirsiniz.

+0

Bu akışla ilgili sorun, P'nin henüz eserlerini arşivlememiş olması. Normalde eserleri test edersiniz, bu yüzden daha da bölmek zorunda kalırsınız. – Wernight

+0

@malenkiy_scot "PARENT_ID aracılığıyla uygun D yapısını bulur" dediniz. Bunun tam olarak ne anlama geldiğini bilmiyorum. D, Parent_Id ile ne yaptı? Test sonuçlarını bir ZIP dosyası olarak arşivlediniz ve bu zip dosya adı parent_id nedir? –