Почему тестовый файл не может запускать тесты против файла приложения?

#unit-testing #flask #flask-testing

#модульное тестирование #flask #flask-тестирование

Вопрос:

Я практикую tdd с Flask, и, как ни странно, мой первый тестовый файл, похоже, не может обнаружить основной файл flask_app:

test_basics.py :

 from flask_testing import TestCase
from flask_app import app
import unittest


class TestBasics(TestCase):

    def test_home_route(self):
        with self.client:
            response = self.client.get('/')
            self.assertEqual(response.status_code, 200)
            self.assertTrue(response.data == b'hakuna matata')

if __name__ == '__main__':
    unittest.main()
 

Я создал setup.py так, чтобы корневой каталог обрабатывался как каталог проекта:

 from distutils.core import setup
from setuptools import find_packages


setup(
    version='0.0.1',
    description='training',
    name='flask'
)
 

структура проекта:

 ├── flask_app.py
├── __pycache__
│   └── flask_app.cpython-38.pyc
├── setup.py
├── tests
│   └── test_basics.py
└── venv


export FLASK_APP=flask_app.py
export FLASK_ENV=development
flask run
 

Что мне нужно сделать, чтобы тесты могли выполняться против основного flask_app.py файл ?

python tests/test_basics.py ВОЗВРАТ:

ModuleNotFoundError: No module named 'flask_app'

Ответ №1:

Я никогда не слышал об Flask-Testing этом раньше.

Я бы настоятельно рекомендовал следовать официальной документации.

https://flask.palletsprojects.com/en/1.1.x/testing/