2009-10-16 10 views

risposta

24

È possibile eseguire Xvfb (X framebuffer virtuale, un server X11 che esegue tutte le operazioni grafiche in memoria) e questo funziona correttamente.

Ma c'è un'altra soluzione con il plugin di Hudson per Xvnc. Basta installare il plug-in e selezionare la casella di controllo nella schermata di configurazione del processo:

alt text http://www.justinedelson.com/blog/wp-content/uploads/xvnc_box.jpg

Hudson inizierà automaticamente una sessione Xvnc e impostare la variabile d'ambiente DISPLAY per il valore appropriato e quindi arrestare la sessione quando il la compilazione è completa. Uno dei vantaggi del metodo Xvfb è che se si hanno contemporaneamente più progetti Swing/SWT in costruzione, ogni build ha una propria sessione X. Questo potrebbe non essere un problema, ma sembra una buona idea.

Prima di utilizzare questo plugin, è necessario che Xvnc sia installato. Ciò che è meno ovvio (anche se ragionevole) è che devi anche impostare una password. Esegui ciò eseguendo:

$ vncpassword 

Questo deve essere eseguito come lo stesso utente che esegue Hudson.

+2

Se funziona, questo è il più grazioso trucco che ho visto in anni! –

+0

+1 Funziona per me :-) –

0

Non so di SWT, ma con Swing non è possibile. Qualsiasi istanza di una finestra (JFrame, JDialog, ecc.) Anche se non è mai impostata su visibile, esploderà in modalità headless (su JDK 5). Quello che abbiamo fatto non è stato eseguito in modalità headless e installare Xvfb per fornire le finestre senza effettivamente avere un vero sistema di finestre installato.

2

Utilizzo di Swing Tendo ad organizzare le cose in modo che l'albero dei componenti possa essere creato senza una finestra in alto. In questo modo puoi semplicemente creare un JPanel in un test unitario e utilizzarlo come componente di livello superiore. Ci sono alcune cose che non puoi testare, come la messa a fuoco e qualsiasi logica coinvolta nella creazione del Frame per il normale funzionamento, ma la stragrande maggioranza può essere testata.

Si consiglia di guardare in biblioteca FEST per rendere la vita più facile se si va senza testa o no, sembra molto buona: http://fest.easytesting.org/swing/wiki/pmwiki.php

Problemi correlati