【发布时间】:2021-05-29 01:10:21
【问题描述】:
我想使用动态添加的 CLI 参数在 pytest 中运行特定测试,即:
class TestHyperML:
def some_test(self):
# Setup some CLI argument such as --some_arg 3 -- some_other_arg 12
my_class = SomeClass()
class SomeClass:
def parse_cli_arguments(self):
# here I want to fetch my arguments in sys.argv.
parameters = {}
name = None
for x in sys.argv[1:]:
if name:
parameters[name] = {'default': ast.literal_eval(x)}
name = None
elif x.startswith('-'):
name = x.lstrip('-')
return parameters
我知道有一种方法可以通过运行 pytest test_something.py --somearg 以编程方式执行此操作,但我想从测试内部以编程方式执行此操作。
有可能吗?谢谢!
【问题讨论】:
-
我不确定您的测试是否与参数有关。你能举一个更具体、更实际的例子吗?
-
@NilsWerner 刚刚将示例修改为更具体。
-
但是你的代码没有解释你为什么要访问参数
-
希望这次能更清楚:)
标签: pytest