我正在运行测试用例,我想以这样一种方式设置我的日志记录,它会自动记录所有测试失败的案例 - 但我想获得自定义响应,例如,如果一个断言失败 我想得到对我的测试发出的请求的响应,而不仅仅是断言失败的默认消息。目前只知道断言失败,不知道程序返回了什么。
假设我正在测试一个 View 函数,例如我有一个看起来大致像这样的测试(整个 TestCase 类的一部分)
def edit_profile(self):
return self.app.get("/edit_profile", follow_redirects=True)
def test_edit_profile(self):
rv = self.edit_profile()
assert "Edit your profile admin" in rv.data
有没有办法让我配置日志记录,使每次测试失败都会将 rv.data 记录到日志文件中?
目前我只是简单地在之前测试失败的断言前加上logging.debug(rv.data),再次运行测试,调试问题,然后继续,但是这样是无效的,很容易忘记那些logging。 debug(),如果我有一个功能可以在测试请求失败时自动记录我的网页响应,它会更快。
最佳答案
self.assertIn('Edit your profile admin', rv.data, msg=rv.data)
使用assertWhatever
方法。我不完全理解为什么,但您不应该在 unittest
中使用 assert
语句进行断言。 (其他框架允许您使用 assert
进行断言。)
作为引用,将消息添加到 assert
断言的工作方式如下:
assert 'Edit your profile admin' in rv.data, rv.data
关于python - 有没有办法配置 Python 日志记录来记录断言失败的内容或上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088879/