用于测试烧瓶应用的最小设置

时间:2018-03-11 19:33:08

标签: python unit-testing flask python-unittest

我正在尝试创建一个最小的设置来测试烧瓶应用程序。

目前我有一个应用程序的文件夹

root/
    myapp/
        __init__.py
        app.py

我的app.py文件是一个非常小的烧瓶应用程序:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

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

现在,关注this guide我正在尝试在专用文件夹中添加一些测试:

root/
    myapp/
        __init__.py
        app.py
    tests/
        tests.py

tests.py具有以下内容:

import os
import myapp
import unittest
import tempfile

class FlaskrTestCase(unittest.TestCase):

    def setUp(self):
        self.db_fd, myapp.app.config['DATABASE'] = tempfile.mkstemp()
        myapp.app.testing = True
        self.app = myapp.app.test_client()
        with myapp.app.app_context():
            myapp.init_db()

    def tearDown(self):
        os.close(self.db_fd)
        os.unlink(myapp.app.config['DATABASE'])

    def test_empty_db(self):
        print(myapp)
        resp = self.app.get('/index')
        assert resp.data

if __name__ == '__main__':
    unittest.main()

现在我想安装和更改尽可能少的东西,并能够运行我的测试。

你的建议是什么?

在我链接的页面中,他们建议使用pytest,但它是另一种工具,我更愿意从基础知识中理解所有内容,避免添加太多内容。

如果我做了最简单的事情:在root文件夹中,运行:

python tests/tests.py

但是我收到了这个错误:

  

ModuleNotFoundError:没有名为'myapp'的模块

但我不确定如何在我当前配置的测试中使用myapp模块。

0 个答案:

没有答案