显示python单元测试中的断言数

显示python单元测试中的断言数,python,unit-testing,assertions,Python,Unit Testing,Assertions,phpUnit显示运行的测试数和所做断言数。按照我目前执行python单元测试的方式,只显示运行的测试数量。是否有一种方法可以计算断言的数量?如果您愿意使用pytest运行测试,它可以为您计算断言的数量 您可以在conftest.py文件中实现一个用于每次传递断言的函数。您可以计算被调用的次数,然后在摘要中打印出来。这不包括对unittest.TestCase.assert…()函数的调用,只包括assert语句 要启用钩子,请编写一个conftest.py文件,如下所示: assertion_

phpUnit显示运行的测试数和所做断言数。按照我目前执行python单元测试的方式,只显示运行的测试数量。是否有一种方法可以计算断言的数量?

如果您愿意使用pytest运行测试,它可以为您计算断言的数量

您可以在
conftest.py
文件中实现一个用于每次传递断言的函数。您可以计算被调用的次数,然后在摘要中打印出来。这不包括对
unittest.TestCase.assert…()
函数的调用,只包括
assert
语句

要启用钩子,请编写一个
conftest.py
文件,如下所示:

assertion_count = 0


def pytest_assertion_pass(item, lineno, orig, expl):
    global assertion_count
    assertion_count += 1


def pytest_terminal_summary(terminalreporter, exitstatus, config):
    print(f'{assertion_count} assertions tested.')
然后在
pytest.ini
文件中启用钩子:

[pytest]
enable_assertion_pass_hook=true
您可能也会发现这个方法很有用


毕竟,我不确定断言的数量是否是测试质量的可靠度量。您可能希望使用或进行突变测试。

使用
--help
运行测试,您将学到一些有用的内容,包括如何获取更详细的统计信息。@9000:嗯,我喜欢--verbose标志。它并不完全符合我的初衷,但它会在其他时间派上用场@DudeOnRock我也有同样的问题,我想获得python unittest中的断言统计数据,而不仅仅是案例数。我怎样才能做到这一点?希望你回复,谢谢。@Dudenrock我支持这个
unittest
forc(-like)程序打印各种有趣的统计数据。遗憾的是,python版本似乎根本不支持这一点。