Python 报告pyTest中的断言数
我正在使用Python 报告pyTest中的断言数,python,integration-testing,pytest,Python,Integration Testing,Pytest,我正在使用pytest编写一些集成级别的测试。我还希望能够报告每个测试用例上的断言数量。默认情况下,pytest将只报告已通过和失败的测试用例数。断言时,将中止测试的进一步执行。因此,每个测试将始终有一个断言 为了实现您想要的,您必须在断言上编写自己的包装器来跟踪。在测试结束时,检查计数是否大于0,然后引发断言。 计数可以在设置或在测试的拆卸时重置为零。据我所知,不可能从pytest中获得通过断言的数量 原因:它使用Python的标准assert语句,因此判断断言是通过还是失败是在使用的引擎中完
pytest
编写一些集成级别的测试。我还希望能够报告每个测试用例上的断言数量。默认情况下,pytest
将只报告已通过和失败的测试用例数。断言时,将中止测试的进一步执行。因此,每个测试将始终有一个断言
为了实现您想要的,您必须在断言上编写自己的包装器来跟踪。在测试结束时,检查计数是否大于0,然后引发断言。
计数可以在
设置
或在测试的拆卸
时重置为零。据我所知,不可能从pytest中获得通过断言的数量
原因:它使用Python的标准assert
语句,因此判断断言是通过还是失败是在使用的引擎中完成的,如果引擎不计算它进入assert
实现中必要的if
的“pass”分支的频率,并提供一种读取该计数器的方法,只有无法从引擎中获取该信息。所以pyTest也不能告诉你
许多(单元)测试框架在默认情况下报告断言计数,我认为这是可取的,因为它是测试质量的一个衡量标准:草率的测试可能会对值应用太少的检查。您必须更好地定义断言的计数。您不能只计算assert语句,因为例如,pytest.raises:仍然是一种测试断言。我想计算在测试用例期间完成的所有assert\u调用,并将其添加到JUnit测试报告中。通常在断言之后不会中止测试,只有在断言失败时才会中止测试,即不符合条件。nnja想要的只是计算通过了多少断言。默认情况下,许多测试框架都会报告这个数字。IMHO——除其他外——是测试质量的有效衡量标准;“草率”测试可能对值应用的检查太少