To szerokie pytanie, ponieważ wydaje się, że nikt jeszcze nie znalazł rozwiązania tego problemu, więc myślę, że prośba o sprawdzenie działającego przykładu może okazać się bardziej przydatna. Więc oto idzie:
Czy ktoś przeprowadził testy nosa projektu python przy użyciu importu wielu plików / pakietów?
Mam na myśli, czy masz listę katalogów takich jak:
project/
|
|____app/
|___main.py
|___2ndFile.py
|___3rdFile.py
|____tests/
|____main_tests.py
Gdzie twój główny.py importuje wiele plików i przeprowadzasz testy nosa z pliku projektu wykorzystania skryptu testowego w pliku main_tests.py? Jeśli tak, czy możesz wykonać zrzut ekranu sekcji importu wszystkich plików głównych i pliku main_tests.py?
Wydaje się, że jest to poważny problem w badaniach nosa, bez widocznego rozwiązania:
- Błąd importowania nosa
- Test uruchomiony z testami nosa kończy się niepowodzeniem w przypadku ImportError, ale działa z komendą python
- https://github.com/nose-devs/nose/issues/978
- https://github.com/nose-devs/nose/issues/964
Odpowiedzi:
2 dla odpowiedzi № 1- Nie możesz mieć modułów Pythona zaczynających się od cyfry, więc
2ndFile.py
,3rdFile.py
nie zadziała (zmień ich nazwy). - Będziesz potrzebował
__init__.py
wewnątrz katalogu aplikacji, aby uznać go za pakiet, więc dodaj go (może to być pusty plik). - Nie potrzebujesz
__init__.py
w katalogu testów! - Instrukcje importu w
main_tests.py
powinien wyglądaćfrom app.main import blah
- Bezwzględna ścieżka
project
katalog musi znajdować się w twoimsys.path
. Aby to osiągnąć, ustaw zmienną środowiskową:export PYTHONPATH=/path/to/project
Teraz przeprowadzanie testów nosa powinno działać.