gpt4 book ai didi

python - 仅返回通过的测试数和失败的测试数

转载 作者:行者123 更新时间:2023-12-01 00:34:20 25 4
gpt4 key购买 nike

使用pytest时,我只想输出通过的测试数和失败的测试数。

如果我在测试文件上调用 pytest,收集 10 个测试,并通过所有测试,我想输出 10,0

如果我在测试文件上调用 pytest,收集 10 项测试,并通过除 2 项之外的所有测试,我希望输出 8,2

有没有办法做到这一点,即使它在purest之外?我想它需要一些聪明的正则表达式,这超出了我的能力范围。

最佳答案

您可以在bash中使用简单的oneliner来解决它,例如

$ pytest -v | tee >(grep FAILED | wc -l) >(grep PASSED | wc -l) >/dev/null | paste -sd "," -

或者您可以实现一个进行计数的小插件:

# conftest.py

@pytest.mark.tryfirst
def pytest_configure(config):
config.pluginmanager.register(MyPlugin(), 'my_plugin')


class MyPlugin:
def __init__(self):
self.passed = 0
self.failed = 0

def pytest_runtest_logreport(self, report):
if report.when != 'call':
return
if report.passed:
self.passed += 1
elif report.failed:
self.failed += 1

def pytest_sessionfinish(self, session, exitstatus):
print(self.passed, self.failed, sep=',')

在关闭terminal插件的情况下运行时,该插件会产生所需的输出:

$ pytest -p no:terminal
23,2

关于python - 仅返回通过的测试数和失败的测试数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57917863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com