为什么在调用该方法时无法识别Pytest参数?

时间:2018-12-20 10:52:17

标签: python python-3.x pytest

我有以下Python代码:

import pytest
class Apple:

    @pytest.mark.parametrize("kind", ['fruit', 'veg', 'nuts'])
    def mix_kind_and_colour(self, kind):
        print(kind)
        return self
    def runner():
        return Apple.mix_kind_and_colour()    
    if __name__== "__main__":
        runner()

但是我得到这个错误:

  

TypeError:mix_kind_and_colour()缺少2个必需的位置参数:“ self”和“ kind”

我该如何解决?

1 个答案:

答案 0 :(得分:2)

  

请看看pytest的docu,这很好。

在您需要对测试进行分组之前,您不需要课程。

但是您需要遵循一些naming conventions

从终端运行pytest命令的test_sample.py的简单工作示例为:

import pytest

@pytest.mark.parametrize("kind", ['fruit', 'veg', 'nuts'])
def test_mix_kind_and_colour(kind):
    print(kind)

如果要使用一个类,请尝试为以下内容运行pytest

import pytest

class TestApple:

    @pytest.mark.parametrize("kind", ['fruit', 'veg', 'nuts'])
    def test_mix_kind_and_colour(self, kind):
        print(kind)

但是您还需要一些assertions来进行测试吗?!?

# content of test_assert1.py
def f():
    return 3

def test_function():
    assert f() == 4