我正在使用unittest编写我的第一个Flask测试。目前,我有三个简单的测试,如下所示:
def setUp(self):
app = create_app()
self.app = app.test_client()
def test_1(self):
response = self.app.get('/', follow_redirects=True)
self.assertEqual(response.status_code, 200)
def test_2(self):
response = self.app.get('/endpoint1', follow_redirects=True)
self.assertEqual(response.status_code, 200)
def test_3(self):
headers = { "API-KEY": "myKey", "Accept": "application/xml"
response = self.app.get('/endpoint1', follow_redirects=True, headers=headers)
self.assertEqual(response.status_code, 200)
在调试上一个测试时,我注意到它的大多数打印语句似乎从来没有出现在我的控制台上。我知道它到达了我的代码中返回403的位置,但是导致该return语句的print语句似乎被截断了。
前两个测试的打印语句全部输出到我的控制台。
即使我更改测试的顺序,最后一条的打印语句也总是被截断。
运行最终测试时,可能是unittest框架在服务器有机会最终确定将其(缓冲的)打印语句输出到控制台之前,将服务器拆除了吗?
答案 0 :(得分:0)
我似乎使用{with}块,如here所述。
示例:
def test_3(self):
with self.app:
headers = { "API-KEY": "myKey", "Accept": "application/xml"
response = self.app.get('/endpoint1', follow_redirects=True, headers=headers)
self.assertEqual(response.status_code, 200)