繁体   English   中英

当测试通过时,鼻子测试/单元测试仍然显示错误?

[英]nosetests/unittest still shows error when test passes?

我有一个单元测试,如果没有经过这样的身份验证,将测试api点是否不可访问:

def test_endpoint_get_unauth(self):
    r = self.get('/api/endpoint/1')
    self.assertStatusCode(r, 401)

测试通过了,但是鼻子测试/单元测试仍然显示一个错误,提示“未授权”。 反正有阻止这个的吗?

完整日志:

ERROR in views [/myenv/lib/python2.7/site-packages/flask_restless/views.py:115]:
Not Authorized
--------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/myapp/myenv/lib/python2.7/site-packages/flask_restless/views.py", line 113, in decorator
    return func(*args, **kw)
  File "/myapp/myenv/lib/python2.7/site-packages/flask/views.py", line 84, in view
    return self.dispatch_request(*args, **kwargs)
  File "/myapp/myenv/lib/python2.7/site-packages/flask/views.py", line 149, in dispatch_request
    return meth(*args, **kwargs)
  File "/myapp/myenv/lib/python2.7/site-packages/flask_restless/views.py", line 989, in get
    preprocessor(instance_id=instid)
  File "/myapp/app/api/api.py", line 16, in check_auth
    raise ProcessingException(message='Not Authorized', status_code=401)
ProcessingException
................
----------------------------------------------------------------------
Ran 16 tests in 15.788s

OK

您看到的消息可能来自应用程序日志记录。

"ERROR"是事件的日志记录级别,您需要将记录器阈值设置为更高的值。

假设您的测试用例对象具有测试客户端应用程序的app属性,如果您不想看到该测试的错误消息,请编写:

def test_endpoint_get_unauth(self):
    import logging
    self.app.logger.setlevel(logging.CRITICAL)

    r = self.get('/api/endpoint/1')
    self.assertStatusCode(r, 401)

有关详细信息,请参见https://docs.python.org/2/library/logging.html

您还可以使用鼻子选项--logging-level=ERROR来设置每次运行的日志记录级别。

该错误不是来自失败的测试用例,而是来自经过测试的应用程序,该应用程序抱怨未经授权的访问。

这很自然,因为您的测试用例只是试图进行未经授权的访问。

由于已测试的应用程序和测试套件都使用stdout进行输出,因此使您感到困惑。 您可以在配置应用程序和测试套件的日志记录以将其获取到不同文件时稍作尝试,然后您会看到谁在说什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM