报告 pyTest 中的断言数量

Report number of assertions in pyTest

我正在使用 pytest 在集成级别编写一些测试。我还希望能够报告在每个测试用例上完成的断言数量。默认情况下,pytest只会报告通过和失败的测试用例数。

断言进一步执行测试被中止。所以每次测试总会有 1 个断言。

要实现您想要的效果,您必须编写自己的断言包装器以保持跟踪。在测试结束时检查计数是否 > 0 然后提出断言。 可以在 setupteardown 测试时将计数重置为零。

据我所知,不可能从 pytest 中获取通过的断言数量。

原因:它采用了Python的标准assert语句,所以判断断言是通过还是失败是在所使用的引擎内完成的,如果引擎没有计算它进入 assert 实现中必要 if 的 "pass" 分支的频率,并提供一种读取该计数器的方法,只有 no方式 从引擎中获取该信息。所以 pyTest 也不能​​告诉你。

许多(单元)测试框架默认报告断言计数,恕我直言,我认为这是可取的,因为它是 - 除其他外 - 测试质量的衡量标准:草率的测试可能对值应用的检查太少。