pytest 报告太多断言失败

pytest reports too much on assert failures

有没有办法让pytest只输出一行断言错误?

当您的模块带有断言时会出现此问题,如果这些断言失败,它会转储使断言失败的整个函数。

> assert r.status_code == 200, f"{idtest.tools.now()} wrong status code {r.status_code}: resp:{r.text}"
E AssertionError: 2019-06-11 12:41:17.239128 wrong status code 500: resp:{"timestamp":"2019-06-11T10:41:17.187+0000","status":500,"error":"Internal Server Error","message":"The user was not found","path":"/mid/business"}

在这种情况下,idtest.testapi.midbusiness() 完全显示在 pytest 输出中。

调整回溯打印模式(--tb):

$ pytest --help
  --tb=style            traceback print mode (auto/long/short/line/native/no).

例如pytest --tb=no 根本不会打印任何痕迹。