在最软时缺少1个必需的夹具位置参数错误

时间:2020-09-20 11:06:26

标签: python pytest

在继承最软的TestCase时,我遇到了缺少1个必需的夹具位置参数的错误。

注意:如果我删除最软的话,TestCase测试将执行但使用时失败。 我的pytest代码如下:

test_compyte.py的内容

import softest

class Testcompute (softest.TestCase):

    def test_compute(self,param1):
        print("param is ",param1)
        assert param1 > 4

if __name__ == '__main__':
    softest.main()

conftest.py的内容

import pytest
import selenium
from selenium import webdriver

def pytest_addoption(parser):

    parser.addoption("--templatename", action="store", help="run all combinations")


def pytest_generate_tests(metafunc):

    if "param1" in metafunc.fixturenames:
        if metafunc.config.getoption("templatename"):
            end = int(metafunc.config.getoption("templatename"))
        else:
            end = 1
        metafunc.parametrize("param1", range(end))

错误日志

self = <parameter.test_compute.Testcompute testMethod=test_compute>
method = <bound method Testcompute.test_compute of <parameter.test_compute.Testcompute testMethod=test_compute>>

    def _callTestMethod(self, method):
>       method()
E       TypeError: test_compute() missing 1 required positional argument: 'param1'

 TypeError
================================================================ short test summary info =================================================================
FAILED test_compute.py::Testcompute::test_compute - TypeError: test_compute() missing 1 required positional argument: 'param1'
1 failed in 0.22s

1 个答案:

答案 0 :(得分:0)

解决方法:在测试内部创建softest.TestCase对象,而不是继承softest.TestCase

test_compyte.py 的更新内容:

class Testcompute: 
    def test_compute(self, param1): 
        case = softest.TestCase() 
        print("param is ", param1) 
        assert param1 > 4 

if name == 'main': 
    softest.main()