Pytest AttributeError:“函数”对象没有属性“ test_func”

时间:2019-05-27 00:41:59

标签: python pytest python-3.7

我正在尝试使用pytest测试python函数,但出现此错误。

import pytest

class Example:

    def __init__(self):
        pass

    @staticmethod
    def test_func(list_arg):
        return len(list_arg)


@pytest.fixture()
def example_instance():
    return Example()


def test_util_fun():
    empty_val = []

    assert example_instance.test_func(empty_val) == 2

错误:

AttributeError: 'function' object has no attribute 'test_func'

pytest和python版本

python 3.7
pytest 4.5.0

1 个答案:

答案 0 :(得分:1)

您需要将example_instance作为参数传递给test_util_fun;它并不是仅仅因为它是一种装置而神奇地出现:

def test_util_fun(example_instance):
    empty_val = []

    assert example_instance.test_func(empty_val) == 2

pytest固定装置的规则有些不同。如果不加说明,则example_instance将绑定到功能对象本身。

但是,如果您将其指定为参数,则pytest将根据指定的范围在需要时自动实例化灯具,并将其传递给测试函数。