sumej
@sumej
DevOps

Unittest в корне python проекта?

Привет всем,

Есть два вопроса:
Папка с тестами вынесена в корень проекта, поэтому получается такой код во всех файлах тестов:
import sys
import unittest
import os
sys.path.append(
    os.path.dirname(
        os.path.dirname(
            os.path.realpath(__file__)) +
        "/../"))

sys.path.append(
    os.path.dirname(os.path.dirname(os.path.realpath(__file__)) + "/../../"))
from api.utils.test import CLITestBase

Можно ли как-нить убрать это?
ЗЫ:
Можно поместить во внутрь проекта?
  • Вопрос задан
  • 251 просмотр
Пригласить эксперта
Ответы на вопрос 3
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
У меня сделано так:
1. Кладу все тесты в папку tests , которая в корне проекта
2. Файлы с тестами называются так чтобы в начале имени было test_
3. Написан такой вот код по запуску тестов:
import unittest
    tests = unittest.TestLoader().discover('tests', pattern='test_*.py')
    unittest.TextTestRunner(verbosity=2).run(tests)

4. У меня тесты рассортированы в подпапки\подпакеты по функциональности которую они тестируют
Ответ написан
Комментировать
sim3x
@sim3x
Можно поместить во внутрь проекта?

Нужно
Ответ написан
Комментировать
sumej
@sumej Автор вопроса
DevOps
new_project
├── init__.py
├── antigravity/
│ ├── __init__.py # make it a package
│ └── antigravity.py
└── test/
├── __init__.py # also make test a package
└── test_antigravity.py

test_antigravity.py:
# import the package
import antigravity

python test_antigravity.py
python test/test_antigravity.py
И тут он падает и не может найти antigravity.
А вот как это работает:
$ cd new_project
$ python -m unittest test.test_antigravity
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы