如何正确断言pytest中引发了异常?

码:

# coding=utf-8

import pytest



def whatever():

    return 9/0


def test_whatever():

    try:

        whatever()

    except ZeroDivisionError as exc:

        pytest.fail(exc, pytrace=True)

输出:

================================ test session starts =================================

platform linux2 -- Python 2.7.3 -- py-1.4.20 -- pytest-2.5.2

plugins: django, cov

collected 1 items 


pytest_test.py F


====================================== FAILURES ======================================

___________________________________ test_whatever ____________________________________


    def test_whatever():

        try:

            whatever()

        except ZeroDivisionError as exc:

>           pytest.fail(exc, pytrace=True)

E           Failed: integer division or modulo by zero


pytest_test.py:12: Failed

============================== 1 failed in 1.16 seconds ==============================

如何使pytest打印回溯,所以我会看到在whatever函数中引发异常的地方?


蝴蝶刀刀
浏览 1725回答 3
3回答

海绵宝宝撒

您的意思是这样的吗:def test_raises():    with pytest.raises(Exception) as excinfo:           raise Exception('some info')    # these asserts are identical; you can use either one       assert execinfo.value.args[0] == 'some info'    assert str(execinfo.value) == 'some info'
打开App,查看更多内容
随时随地看视频慕课网APP