2012-10-02 20 views
5

Próbuję uruchomić testy w Jenkins dla pakietu Python, który używa PyQt4, a testy tworzyć okna. Ponieważ używam testów w Jenkins, muszę przekierować graficzne wyjście, więc używam xvfb-run. Przez większość czasu, to działa, ale ułamek czasu, badanie losowo niepowodzeniem z:Running py.test z xvfb-run

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

Gdybym ponownie uruchomić testy, to działa dobrze przez większość czasu (tak to tylko jeden -off problem).

Czy ktoś napotkał ten problem wcześniej? Czy masz jakieś pomysły na obejścia w celu poprawy stabilności testów?

+3

myślę, że jest to linia w 'skryptu Xvfb-run' gdzie próbuje wykryć, czy istnieje inna instancja działa, więc jeśli' przełącznik -a' dano, można ponowić próbę z inną numer serwera. Spróbuj uruchomić z przełącznikiem '-a' (lub' --auto-servernum'), aby sprawdzić, czy to ma znaczenie. –

Odpowiedz

1

Jeśli twoją kopią xvfb-run jest same as mine, mogę potwierdzić, że również to widziałem.

W moim przypadku proces docelowy spowodował awarię Xvfb. Oznacza to, że sam skrypt owijki nie powiedzie się w linii 171 podczas odrywania nie działającego Xvfb. Aby obejść to, owinąłem kill $XVFBPID w bloku set +e/set -e. Pomaga również, jeśli podasz --error-file=, aby xvfb-run zapisał asynchroniczne standardowe wyjście błędów z Xvfb, podczas gdy twój docelowy proces jest uruchomiony, więc możesz naprawić przyczynę.

obejść:

# 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

To niestety nie zadziałało. W każdym razie dzięki. – Sam

1

działać poprzez znalezienie proces Xvfb i zabić go.

ps auwx | grep "Xvfb" | grep -v grep