pytest 报告摘要显示错误信息 [英] Pytest report summary to display error information

查看:32
本文介绍了pytest 报告摘要显示错误信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 pytest 钩子和插件比较陌生,我无法弄清楚如何让我的 pytest 代码为我提供测试执行摘要以及失败原因.

I am relatively new to pytest hooks and plugins and I am unable to figure out how to get my pytest code to give me test execution summary with reason of failure.

考虑代码:

class Foo:
    def __init__(self, val):
        self.val = val

    def test_compare12():
        f1 = Foo(1)
        f2 = Foo(2)
        assert f1 == f2, "F2 does not match F1"

    def test_compare34():
        f3 = Foo(3)
        f4 = Foo(4)
        assert f3 == f4, "F4 does not match F3"

当我使用 -v 选项运行 pytest 脚本时,它在控制台上给我以下结果:

When I run the pytest script with -v option, it gives me the following result on the console:

========================= test session starts=================================
platform darwin -- Python 2.7.5 -- py-1.4.26 -- pytest-2.7.0 --    /Users/nehau/src/QA/bin/python
rootdir: /Users/nehau/src/QA/test, inifile: 
plugins: capturelog
collected 2 items 

test_foocompare.py::test_compare12 FAILED
test_foocompare.py::test_compare34 FAILED

================================ FAILURES ===============================
_______________________________ test_compare12 _________________________

def test_compare12():
    f1 = Foo(1)
    f2 = Foo(2)
>       assert f1 == f2, "F2 does not match F1"
E       AssertionError: F2 does not match F1
E       assert <test.test_foocompare.Foo instance at 0x107640368> == <test.test_foocompare.Foo instance at 0x107640488>

test_foocompare.py:11: AssertionError
_____________________________ test_compare34______________________________

def test_compare34():
    f3 = Foo(3)
    f4 = Foo(4)
>       assert f3 == f4, "F4 does not match F3"
E       AssertionError: F4 does not match F3
E       assert <test.test_foocompare.Foo instance at 0x107640248> == <test.test_foocompare.Foo instance at 0x10761fe60>

test_foocompare.py:16: AssertionError

=============================== 2 failed in 0.01 seconds ==========================

我正在运行接近 2000 个测试用例,因此如果我可以使用以下格式的 pytest 显示输出,那将非常有帮助:

I am running close to 2000 test cases, so it would be really helpful if I could have pytest display output in the following format:

::
test_foocompare.py::test_compare12 FAILED AssertionError:F2 does not match F1
test_foocompare.py::test_compare34 FAILED AssertionError:F2 does not match F1
::

我查看了 pytest_runtest_makereport 插件,但似乎无法让它工作.有人有其他想法吗?

I have looked at pytest_runtest_makereport plugin but can't seem to get it working. Anyone has any other ideas?

谢谢

推荐答案

试试 -tb 标志:

pytest --tb=line

这为每个测试提供一行输出.请参阅文档.

This gives one line of output per test. See the docs.

这篇关于pytest 报告摘要显示错误信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆