Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶-罐';t在测试文件中导入应用程序_Python_Flask_Python Unittest - Fatal编程技术网

Python 烧瓶-罐';t在测试文件中导入应用程序

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.

我正在尝试为我制作的一个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.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
模块中移动测试。对于不起作用的引用:(对不起,我的意思是将其移出并使用相对路径。我确信这将有效地将文件路径添加到系统路径。您可以在测试文件的顶部执行此操作