给出以下Flask视图
@contact.route('/contactInfo', methods=["POST"])
def contact_info():
return Response(httplib.OK)
以下琐碎的单元测试:
class TestContactViews(object):
def setUp(self):
self.app = create_app()
self.client = self.app.test_client()
def post_contact_info(self):
r_view = self.cient.post('/contactInfo')
assert_equals(r_view, httplib.OK)
运行nosetests --with-coverage --cover-tests
时,视图的报告状态标记为“丢失”,因为它从未被调用过。是否有遗漏或需要的选项?
注意:GitHub
上提供完整代码答案 0 :(得分:4)
如果在nosetests命令中添加-v
(详细)选项,您将发现许多测试未被找到并执行。只有五项测试正在运行。
原因是具有单元测试的方法需要具有以test_
前缀开头的名称。这就是鼻子找到它们的方式。所以基本上你需要将测试改为:
def test_post_contact_info(self):
r_view = self.cient.post('/contactInfo')
assert_equals(r_view, httplib.OK)
我还建议您将--cover-package=py_showcase
添加到您的鼻子命令中,以便覆盖范围被过滤为仅显示您自己的代码,而不是您在virtualenv中的第三方代码。