在继承最软的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
答案 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()