Projetk działa jedynie pod IDE

0

Witam pierwszy raz się z tym spotkałem i nie wiem jak mam ten problem rozwiązać.
Stworzyłem testy automatyczne i działają świetnie. Działają jedynie wtedy gdy odpalam jest pod IDE. Natomiast jak chcę je uruchomić spod konsoli w środowisku venv testy nie przechodzą. Dostaję błąd :

Traceback (most recent call last):
  File "ModulTests.py", line 2, in <module>
    from tests.projects.SDK import Energy
ModuleNotFoundError: No module named 'tests'

Wygląda to jak by python nie widział całego drzewa katalogowego, lub szukał katalogu nie tam gdzie powinien.
Nie wiem jak rozwiązać ten problem. Pierwszy raz się na to nadziałem. Pytanie co zrobiłem źle ?

0

Jakie IDE? Jaka jest struktura katalogów i plików projektu?
Może folder tests nie zawiera pliku

__init__.py

, a mimo to Twoje IDE sobie z tym jakoś radzi?

0

├── lib
│   └── helpers
│   ├── Helper.py
│   ├── Loader.py
│   ├── Helper.py
│   ├── Mysql.py
├── README.md
├── requirements.txt
├── tests
│   ├── init.py
│   ├── projects
│   │   ├── backend
│   │   │   ├── config.yml
│   │   │   ├── init.py
│   │   │   ├── src
│   │   │   │   ├── init.py
│   │   │   │   └── Opendata.py
│   │   │   └── tests
│   │   │   ├── init.py
│   │   │   └── opendata.py
│   │   ├── init.py
│   │   ├── projekttestowy
│   │   │   ├── config.yml
│   │   │   ├── init.py
│   │   │   ├── src
│   │   │   │   ├── init.py
│   │   │   │   └── Testertestowy.py
│   │   │   └── tests
│   │   │   ├── init.py
│   │   │   └── test.py
│   │   └── SDK
│   │   ├── config.yml
│   │   ├── init.py
│   │   ├── src
│   │   │   ├── builder.py
│   │   │   ├── Tester.py
│   │   │   ├── init.py
│   │   └── tests
│   │   ├── init.py
│   │   ├── Electric.py
│   │   └── pycache
│   └── src
│   ├── init.py
│   └── testers
│   ├── Http.py
│   ├── init.py
│   ├── JsonApi.py
│   └── Tester.py
└── venv

I już nie może wejść do katalogu tests.

0

@Arthan: Rozwiązałem problem połowicznie. Uruchamiam plik tak:

PYTHONPATH=ścieżka do projektu python ścieżka/do/pliku.py

Teraz nie krzyczy że nie może czegoś znaleźć ale nie wykonuje mi w środku testów. Dodałem na samym końcu pliku:

test = ObiektzTestami()
test.testpierwszy()

Wchodzi do samego testu ale nie wykonuje go.

Czyli dalej problem nie rozwiązany.

1

To chyba nie tak uruchamia się testy.
https://docs.python.org/3/library/unittest.html#basic-example
Czyli najważniejsze jest wywołanie unittest.main() by w ogóle je ruszyć, nie wywołuje się metod i nie tworzy się obiektów samemu. Bynajmniej ja się z takim podejście nie spotkałem.
https://docs.python.org/3/library/unittest.html#unittest.main

1 użytkowników online, w tym zalogowanych: 0, gości: 1