2009-07-24 14 views
12

Ekibim, gece ve sürekli entegrasyon yapıları ve regresyon testlerini otomatikleştirmek için şu anda buildbot kullanıyor. Yapılar ve birim testleri için, oluşturucu sadece kaynakları p4'ten senkronize eden ve daha sonra xcodebuild'u çalıştıran bir komut dosyasını çağırır. Regresyon testleri ayrıca bir kabuk betiği tarafından başlatılır ve kendileri de kabuk betikleri ve AppleScripts bileşenlerinin birleşimidir. Yapıların hepsi tek bir sistem üzerinde gerçekleştirilir, ancak buildbot farklı mimariler ve işletim sistemi kombinasyonları ile birden çok Mac üzerinde gerçekleştirilecek testleri tetikler. Buildbot hakkında sevdiğim şeyler otomatik tetikleyicilerdir (bu nedenle testler yalnızca ve eğer yapı başarılı olursa olsun) ve genel durumu görmek için şelale manzarasını içeren raporlama. Bununla birlikte, bir takım sorunlar görüyorum. Yapıları koordine eden "usta" süreç ya sızıyor ya da sadece birkaç gigabayt bellek tüketen büyük bir çalışma setine sahip. Bazen ağ sorunları bir kölenin kaybolacağı anlamına gelir; daha sonra tekrar denemek yerine sadece yapı başarısız olur. Aslında bağımlı bağımlı yapı için kölenin tetiklenmesi gerekiyorsa, aksi takdirde başarılı bir şekilde tamamlandıktan sonra ilk yapı başarısız olur.Mac geliştiricileri hangi otomatik sistemlerden yararlanıyor?

Xcode yapılarınızı ve birim testlerinizi otomatikleştirmek için kullandığınız şey nedir? Bu çözümler sizin için nasıl çalışıyor? Tavsiye edeceğin bir şey var mı?

+0

Bu topluluğu Wiki'yi düşünmeye değer olabilirsiniz. – AutomatedTester

+2

düşünmüyoruz - çeşitli çözümlerin teknik karşılaştırmasını rica ediyorum, en sevdiğiniz webcomic değil. –

cevap

5

Windows ortamında TeamCity kullanıyorum ancak Mac üzerinde çalışacağını ve xcode oluşturma aracılarına sahip olduğunu düşünüyorum.

Başka benzer soru here.

4

Ekibimiz Hudson'ı, Birim Testi çıktısını XCode'dan NUnit biçimine dönüştüren bir komut dosyası kullanarak kullanır.

1

Tüm bellek - günlük dosyalarını ne kullandığını öğrendik - eski yapı bloğu tüm günlükleri sonsuza kadar saklar ve bellekte tutar (muhtemelen yeniden başlatılıncaya kadar).

Daha yeni bir buildbot sabit bir miktarda tarih tutmak için yapılandırılabilir. Sorun oluşmasını önlemek için Buildbot yapı günlük dosyaları boyut olarak sınırlandırılmalıdır.

+0

Bu iyi :-) Bence bellek emmek ana sorun oldu, köle kullanılabilirlik şey can sıkıcı ama iyi bir ağ sahip etrafında çalışılabilir. –

1

CruiseControl'un bir parçası olan XcodeBuilder'u kullanıyorum. Tabii ki yazmamda yardımcı olur.

Ancak, uygulama mağazasında satılan bir iPhone uygulaması (Surf) için gerçek bir çok kişi projesinde kullandım.

2

Bunun daha eski bir soru olduğunu biliyorum, ancak TFS'yi Xcode projelerini yürütmek için kullananlar için, Xcode'un otomatikleştirilmesini TFS yoluyla daha kolay hale getirmek için özel bir oluşturma etkinliği oluşturdum. Kod burada Codeplex üzerinde barındırılmaktadır: http://tfsxcodebuild.codeplex.com/.

Birisi bunu yararlı bulur!

0

Şimdi üç yıl sonra bu soruya cevap vermek için kendi cevabım var. Esas olarak sağladığı eklentiler için Jenkins kullanıyorum. Xcode projelerinde (veya çalışma alanlarındaki şemalarda) hedef oluşturmak için bir eklenti vardır. Clang static analyzer'u çalıştırmak için bir eklenti var. Böcek izleyici sistemimle arayüz oluşturur, otomatik olarak Testflight'a da yüklenir.

İlgili konular