所以我要做的是编写一个pytest脚本,允许我传入一个字符串作为参数。我不能为我的生活弄清楚如何让参数作为一个整体字符串传入,而不是将它作为单独的字符对待。我尝试了很多选项,但这是我得到的最接近的选项。我觉得我只是缺少一些可以使其真正起作用的小逻辑。
def pytest_addoption(parser):
parser.addoption("--host", dest="host", type="string",
action="store", default="john", help="Enter an
endpoint for TransactionDS")
def pytest_generate_tests(metafunc):
if 'host' in metafunc.fixturenames:
metafunc.parametrize("host", metafunc.config.getoption('host'))
def test_host(host):
global endpoint
endpoint = host
if (endpoint == '90.90.90.90'):
print(endpoint)
else:
print(endpoint)
pytest -q --host“Chris”test_args.py -s --html = report.html
IP Address from Hello World 1 -
C
.h
.r
.i
.s
.
答案 0 :(得分:1)
Fixture值应该是要迭代的值列表。 因此,如果您使用字符串,它会将每个字符视为一个值并运行测试len(主机)的时间数
所以只需使用
def pytest_generate_tests(metafunc):
if 'host' in metafunc.fixturenames:
metafunc.parametrize("host", [metafunc.config.getoption('host')])
py.test -q --host "Chris" test_args.py -s
Chris
.
1 passed in 0.00 seconds
我从您的html
conftest.py
中删除了