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

时间:2013-12-28 06:15:11

标签: python unit-testing assertions

phpUnit显示运行的测试次数和断言次数。我目前执行python的单元测试的方式,只显示运行的测试次数。有没有办法计算断言的数量?

1 个答案:

答案 0 :(得分:0)

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

您可以在conftest.py文件中实现一个hook,该文件会为每个传递的断言调用。您可以计算被调用的次数,然后在摘要中将其打印出来。那不算对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

您可能还会发现assertion compare hook有用。

毕竟,我不确定断言的数量是否可以可靠地衡量测试质量。您可能想研究使用MutPymutmut进行的突变测试。