Flask - 无法从tests文件夹运行测试(无法执行相对导入)

时间:2017-10-02 07:14:54

标签: python unit-testing flask

您好我有以下项目结构

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

run.py

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

应用程序/的初始化的.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 anf Flask 0.12.2

由于

1 个答案:

答案 0 :(得分:0)

通过执行以下操作来管理此工作

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

Class TestProject(unittest.TestCase):

但只是因为这项工作是正确的还是有更好的更多pythonic方式?