【问题标题】:Flask - Unable to run tests from tests folder (cannot perform relative import)Flask - 无法从测试文件夹运行测试(无法执行相对导入)
【发布时间】:2018-03-13 06:07:12
【问题描述】:

您好,我有以下项目结构

  • 项目
    • 应用/
      • 初始化.py
      • views.py
      • forms.py
      • models.py
      • 静态/
      • 模板/
    • config.py
    • project_database.db
    • requirements.txt
    • run.py
    • 测试/
      • test_project.py

运行.py

from app import app 
 if __name__ == '__main__':
     app.run()

app/init.py

from flask import Flask                                                                 
from playhouse.flask_utils import FlaskDB

app = Flask(__name__, instance_relative_config=True)

app.config.from_object('config.DevelopmentConfig')

flask_db = FlaskDB(app)

database = flask_db.database

from app import views

测试/test_project.py

from ..app import app
import unittest

class TestProject(unittest.TestCase):
       ''' tests'''

当我尝试运行测试时,出现以下错误

Traceback (most recent call last):   File "tests/test_status_code.py", line 1, in <module>
from ..app import app SystemError: Parent module '' not loaded, cannot perform relative import

如果我将测试文件移出它运行的文件夹,但我想将它放在文件夹中,这样我就可以将所有测试文件放在那里。

我正在使用 python 3.5 和 Flask 0.12.2

谢谢

【问题讨论】:

  • 您尝试将您的 init.py 重命名为 init.py
  • 我的 init.py 已经有双下划线,就在我发布它被删除的问题时。

标签: python unit-testing flask


【解决方案1】:

通过执行以下操作设法使其正常工作

import sys
sys.path.append('../')
from app import app
import unittest

Class TestProject(unittest.TestCase):

但是仅仅因为这个工作是正确的还是有更好的pythonic方式?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2019-10-21
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多