Eri*_*ang 3 python json fixture pytest
来自pytest.org的示例代码,是否可以从json文件加载参数?
# content of conftest.py
import pytest
import smtplib
@pytest.fixture(scope="module",
params=["smtp.gmail.com", "mail.python.org"])
def smtp(request):
smtp = smtplib.SMTP(request.param)
def fin():
print ("finalizing %s" % smtp)
smtp.close()
request.addfinalizer(fin)
return smtp
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情
# conftest.py
@pytest.fixture(scope="module", params=a_list_var)
def fixture_a(request):
# some.py or anywhere?
a_list_var = load_json(parameter_file_path)
# test_foo.py
...
def test_foo(fixture_a)
...
Run Code Online (Sandbox Code Playgroud)
给定json文件:
["smtp.gmail.com", "mail.python.org"]
Run Code Online (Sandbox Code Playgroud)
您可以简单地将其加载到Python对象,然后将该对象传递给装饰器。
import json
import pytest
import smtplib
def load_params_from_json(json_path):
with open(json_path) as f:
return json.load(f)
@pytest.fixture(scope="module", params=load_params_from_json('path/to/file.json'))
def smtp(request):
smtp = smtplib.SMTP(request.param)
def fin():
print ("finalizing %s" % smtp)
smtp.close()
request.addfinalizer(fin)
return smtp
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3424 次 |
最近记录: |