我正在尝试参数化对 pytest 的调用,如下所示:
export OPTIONS="tests -k 'not e2e'"
pytest ${OPTIONS}
pytest
由于变量中的引号,调用失败。将选项直接放入调用中效果很好。
我试过:
pytest ${OPTIONS}
ERROR: file not found: tests -k 'not e2e'
pytest $(eval echo "${OPTIONS}") # removes all quotes
ERROR: file not found: e2e
pytest $(printf %s ${OPTIONS})
如何使pytest
调用以参数化方式工作?
更新
这回答包含一个有效的解决方案:
eval "OPTIONS=($OPTIONS)" # (opt.) convert an existing string to an array
export OPTIONS=(tests -k 'not e2e')
pytest "${OPTIONS[@]}"
非常感谢您指出这一点。我已经搜索了好几个小时了。
答案1
你试过这个吗?
export OPTIONS="tests -k \'not e2e\'"
它必须与eval