2016-04-14 38 views
6

sto sviluppando una GUI con PySide e creare mappa di pixel da immagini come questa:beni Immagine non verranno caricati quando si utilizza pytest

PHONE_IMAGE_PATH = "resources/images/phone.png" 
self.phone_null = QtGui.QPixmap(GREY_DOT_PATH) 
self.phone_null = self.phone_null.scaledToWidth(20) 

Questo funziona perfettamente quando si esegue il programma, ma quando prova con py.test questo accade:

QPixmap::scaleWidth: Pixmap is a null pixmap 

si dice che il pixmap è nullo, così sembra che l'immagine non è stata caricata correttamente.

Voglio davvero testare il mio codice e non riesco a trovare nessuna informazione su questo problema. Qualcuno ha una soluzione al mio problema?

+2

utilizzare un percorso assoluto. – ekhumoro

risposta

0

Da Wikipedia:

Al contrario, un percorso relativo inizia da un dato directory di lavoro, evitando la necessità di fornire il percorso assoluto completo. Un nome file può essere considerato come un percorso relativo basato sulla directory di lavoro corrente. Se la directory di lavoro non è la directory principale del file, verrà generato un errore di file non trovato se il file è indirizzato dal suo nome.

Sembra che stia usando un percorso relativo per la risorsa immagine, quindi quando si esegue il programma il percorso relativo è corretto, ma presumo che i test si trovino in una directory diversa dal programma principale.

si potrebbe ottenere la posizione del file corrente con: __file__
Esempio:

main_script_dir = os.path.dirname(__file__) 
rel_path = "resources/images/phone.png" 
PHONE_IMAGE_PATH = os.path.join(main_script_dir, rel_path)