我有一个app.py文件,可以创建一个烧瓶应用
from app import create_app
class TestCase(unittest.TestCase):
def setUp(self):
self.app = create_app()
self.client = self.app.test_client()
ctx = self.app.app_context()
ctx.push()
def test_healthcheck(self):
res = self.client.get("/")
self.assertEqual(res.status_code, 200)
def test_tenant_creation(self):
res = self.client.post("/tenants")
self.assertEqual(res.status_code, 200)
我正在尝试为我的模块编写单元测试,下面是文件
{{1}}
当我运行单独的测试方法时,它工作正常。但是当我运行整个测试用例时,再次调用create app会导致问题,因为我的create app有依赖项,只需要调用一次。
是否可以只创建一次应用程序?
答案 0 :(得分:1)
setUp。因此,如果运行整个测试用例,它将被调用两次(每种测试方法一次)。
要为TestCase
仅运行一次,您可以尝试覆盖__init__
方法(请参阅this SO question)或setUpClass or setUpModule。 YMMV取决于您正在使用的python版本和测试运行器。
答案 1 :(得分:-1)
tearDown()
方法来销毁您在setUp()
中创建的应用程序上下文:
class TestCase(unittest.TestCase):
def setUp(self):
self.app = create_app()
self.client = self.app.test_client()
self.ctx = self.app.app_context()
self.ctx.push()
def tearDown(self):
self.ctx.pop()