簡體   English   中英

Flask - 無法在測試文件中導入應用程序

[英]Flask - Can't import app inside test file

我正在嘗試為我制作的 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

運行.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: No module named 'project'。 我嘗試在 TestUsers.py 中執行 sys.path.append('../') 和../../,但這沒有幫助。

在 TestUsers.py 中,在導入應用程序之前:

https://stackoverflow.com/a/22737042/7858114

我認為您的 apiproject 文件夾中也需要一個init .py 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM