2012-10-02 27 views
5

Ben PyQt4 kullanan bir Python paketi için Jenkins'de testler çalıştırmaya çalışıyorum ve testler pencereler oluşturuyor. Jenkins’deki testleri çalıştırdığımdan, grafik çıktıyı yeniden yönlendirmem gerekiyor, bu yüzden xvfb-run kullanıyorum. Çoğu zaman, bu çalışır, ancak zamanın bir kısmı, test rastgele başarısız olur: Testleri yeniden çalıştırılırsa, bu (çoğu zaman gayet iyi çalışıyorxvfb-run ile py.test

/usr/bin/xvfb-run: line 171: kill: (27375) - No such process 

yüzden bu sadece bir kişi o -off problemi).

Daha önce bu sorunla karşılaştı mı? Testin stabilitesini iyileştirmek için geçici çözümler için herhangi bir fikrin var mı?

+3

Size öyle çalışan başka örneği varsa tespit etmeye çalışır 'xvfb-run' komut satırı, bu nedenle' -a' anahtarı verildi, farklı bir ile tekrar deneyebilir düşünüyorum sunucu numarası Herhangi bir fark yaratıp yaratmadığını görmek için '-a 'anahtarıyla (veya' --auto-servernum') çalışmayı deneyin. –

cevap

1

xvfb-run kopyanız same as mine ise, bunu da gördüm.

Benim durumumda, hedef işlem Xvfb'nin çökmesine neden oldu. Bu, sarmalayıcı komut dosyasının artık Xvfb'yi artık çalışmıyorken yuvarlandığı sırada satır 171'de başarısız olduğu anlamına gelir. Etrafında çalışmak için kill $XVFBPID'u set +e/set -e satırına ekledim. Ayrıca, hedef işleminiz çalışırken xvfb-run Xvfb'den gelen asenkron standart hata çıktısını kaydedebilmeniz için --error-file= belirtmenizde yardımcı olur, böylece altta yatan neden giderilebilir. etrafında

İş: Bu Xvfb sürecini bulup öldürmek yoluyla işe

# Kill Xvfb now that the command has exited. 
# Ignore failure of kill since we want to be forgiving of Xvfb itself crashing 
set +e 
kill $XVFBPID 
set -e 
+0

Bu ne yazık ki benim için işe yaramadı. Yine de teşekkürler. – Sam

1

.

ps auwx | grep "Xvfb" | grep -v grep 
İlgili konular