我有一个可以工作的烧瓶应用程序(用邮递员测试)。
我现在正在为它编写单元测试,因为我正在我的存储库上尝试使用 Travis 和 CI,我使用了 nose2。
我写的测试类是这样的:
import unittest
import requests
from myapp import app
class ProjectTests(unittest.TestCase):
############################
#### setup and teardown ####
############################
# executed prior to each test
def setUp(self):
app.config["TESTING"] = True
app.config["DEBUG"] = False
self.app = app.test_client()
self.assertEquals(app.debug, False)
# executed after each test
def tearDown(self):
pass
########################
#### helper methods ####
########################
###############
#### tests ####
###############
def test_main_page(self):
response = self.app.get("/", follow_redirects=True)
# self.assertIn(b"Hello World!", response.data)
# response = app.test_client().get('/')
assert response.status_code == 200
# print(response.data)
assert response.data == b"Hello, world!"
def test_register(self):
# import requests
url = "http://127.0.0.1:5000/register"
payload = '{\n\t"username": "bruno",\n\t"password": "asdf"\n}\n'
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, headers=headers, data=payload)
# print(response.text.encode("utf8"))
print(response.json()["message"])
assert response.status_code == 400 # user already exists
if __name__ == "__main__":
unittest.main()
如果我运行应用程序,然后我复制并粘贴 test_register 方法,即
import requests
url = "http://127.0.0.1:5000/register"
payload = '{\n\t"username": "bruno",\n\t"password": "asdf"\n}\n'
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, headers=headers, data=payload)
# print(response.text.encode("utf8"))
print(response.json()["message"])
一切都很好。如果我运行nose2 并且收到连接被拒绝错误,它会失败。如果我评论 test_register 方法并且nose2 运行良好。我认为我正在以不同的方式实施这两个测试。
有关如何解决此问题的任何帮助?