2016-04-14 15 views
6

Zajmuję się GUI z PySide i tworzę pixmapę z obrazów tak:aktywa obraz nie będzie ładować przy użyciu pytest

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

Działa to doskonale, kiedy uruchomić program, ale kiedy go przetestować py.test tak się dzieje:

QPixmap::scaleWidth: Pixmap is a null pixmap 

mówi, że pixmap jest zerowy, więc wydaje się, że obraz nie został prawidłowo załadowany.

Naprawdę chcę przetestować mój kod i nie mogę znaleźć żadnych informacji na temat tego problemu w dowolnym miejscu. Czy ktoś ma rozwiązanie mojego problemu?

+2

bezwzględną ścieżkę. – ekhumoro

Odpowiedz

0

Z Wikipedii:

Natomiast względna ścieżka zaczyna się od jakiegoś danego katalogu roboczym, unikając konieczności zapewnienia pełnej ścieżki bezwzględnej. Nazwa pliku może być traktowana jako ścieżka względna w bieżącym katalogu roboczym. Jeśli katalog roboczy nie jest katalogiem nadrzędnym pliku, zostanie znaleziony błąd braku pliku, jeśli plik jest adresowany przez jego nazwę.

Wygląda na to, że używamy względnej ścieżki do zasobu graficznego, więc po uruchomieniu programu ścieżka względna jest poprawna, ale zakładam, że testy znajdują się w innym katalogu niż program główny.

Można uzyskać aktualną lokalizację pliku z: __file__
Przykład:

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