【发布时间】:2014-10-30 21:55:38
【问题描述】:
我刚刚开始使用 pytest。除了通过/失败状态,还有什么方法可以记录结果吗?
例如,假设我有一个这样的测试函数:
@pytest.fixture(scope="session")
def server():
# something goes here to setup the server
def test_foo(server):
server.send_request()
response = server.get_response()
assert len(response) == 42
如果响应的长度为 42,则测试通过。但我也想记录响应值(“...出于质量保证目的,将记录此调用....”),甚至虽然我并不严格要求通过/失败标准的确切值。
【问题讨论】:
-
你想用额外的记录数据做什么?例如。您希望以后能够比较不同的测试运行吗?似乎您想要收集的数据作为单独的套件/事物(例如仪器/集成)可能会更好。如果您不需要任何特别“有趣”的东西,那么将数据保存到平面文件可能是可以接受的?
-
我只想要一种结构化的方式来存储每个测试的任何辅助数据。是的,我可以做带外方法并自己存储它......我希望 pytest 可以提供一个功能。对于人类来说,只需仔细检查测试结果是否合理。
-
对于任何单元测试框架,我都没有遇到过这样的事情(并不是说不存在)。但是考虑到如果您想要存储的数据(以及您可能想要将其用于什么)的广泛性质,您最好自己滚动。也许您可以考虑使用测试模块记录器的排列,所有这些都从具有特殊名称的父级继承,并带有一个处理程序,该处理程序将记录到您选择的特殊文件?
-
也许你需要这样的东西:
assert len(response) == 42, "My message"但它只会在失败时显示
标签: python unit-testing python-2.7 pytest