Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 报告pyTest中的断言数_Python_Integration Testing_Pytest - Fatal编程技术网

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——除其他外——是测试质量的有效衡量标准;“草率”测试可能对值应用的检查太少