Python 烧瓶-罐';t在测试文件中导入应用程序
我正在尝试为我制作的一个flask应用程序编写一些单元测试。项目的设置如下所示:Python 烧瓶-罐';t在测试文件中导入应用程序,python,flask,python-unittest,Python,Flask,Python Unittest,我正在尝试为我制作的一个flask应用程序编写一些单元测试。项目的设置如下所示: apiproject (parent folder containing everything) /venv run.py requirements.txt /project __init__.py /departments __init__.py routes.py models.py /users __init__.py routes.
apiproject (parent folder containing everything)
/venv
run.py
requirements.txt
/project
__init__.py
/departments
__init__.py
routes.py
models.py
/users
__init__.py
routes.py
models.py
/tests
TestUsers.py
run.py:
from project import app
if __name__ == '__main__':
app.run(debug=True)
我的实际应用程序是在project/init.py下创建的
from flask import Flask, jsonify, Response
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
import os
from dotenv import load_dotenv
from flask_cors import CORS
load_dotenv(verbose=False)
DB_URL = os.getenv("DATABASE_URL")
# initialize the application
app = Flask(__name__)
在我的TestUsers.py中,我有:
import json
from project import app
import unittest
from dotenv import load_dotenv
load_env(verbose=False)
class TestUsers(unittest.TestCase):
def setUp(self):
self.app = app
self.url_prefix = prefix = os.getenv("URL_PREFIX")
self.client = self.app.test_client()
def test_index(self):
response = self.client.get(self.url_prefix + '/')
self.assertEqual(response.status_code, 200)
if __name__ == '__main__':
unittest.main()
当我运行TestUsers.py时,我得到ModuleNotFoundError:没有名为“project”的模块。我尝试在TestUsers.py的内部执行sys.path.append('../')和.././操作,但没有任何帮助。我想你也需要在apiproject文件夹中使用init.py。我想你也需要在apiproject文件夹中使用init.py。在导入应用程序之前,在TestUsers.py内部:
https://stackoverflow.com/a/22737042/7858114
在TestUsers.py内,导入应用程序之前:
https://stackoverflow.com/a/22737042/7858114
在
/project
模块中移动测试。对于不起作用的引用:(抱歉,我的意思是将其移出并使用相对路径。我确信这将有效地将路径添加到文件到系统路径。您可以在测试文件的顶部执行此操作在/project
模块中移动测试。对于不起作用的引用:(对不起,我的意思是将其移出并使用相对路径。我确信这将有效地将文件路径添加到系统路径。您可以在测试文件的顶部执行此操作