我不知道为什么在每个测试函数中都会调用create_app

时间:2019-03-04 08:56:34

标签: flask flask-testing

我使用flask_testing编写测试代码

以下是我的测试代码

from app import create_app, db

class SampleTest(TestCase):
    def create_app(self):
        self.db_fd, self.db_path = tempflie.mkstemp()
        return create_app({'DATABASE': self.db_path})

    def setUp(self):
        db.create_all()

    def tearDown(self):
        db.session.remove()
        db.drop_all()
        os.close(self.db_fd)
        os.unlink(self.db_path)

    def test1(self):
        response = self.get('/test1/')

    def test2(self):
        response = self.get('/test2/')

在调试测试代码时,我发现在所有测试功能(包括test1,test)中都调用了create_app。

我怎么只能调用一次create_app函数?

1 个答案:

答案 0 :(得分:0)

def create_app(self):
    self.db_fd, self.db_path = tempflie.mkstemp()
    return create_app({'DATABASE': self.db_path})

这令人困惑,我怀疑您不打算导入create_app并使用名为create_app的方法。

在导入的create_app上也有@ pytest.fixture吗?