在代码中添加sys参数以在任何导入的模块中使用

时间:2018-10-24 13:28:10

标签: python pytest

我的模块需要一些sys参数进行实例化:

print('args are: \t')
print(sys.argv)
d_path = sys.argv[2]
test2 = sys.argv[1]
sys.path.append(os.path.abspath(sys.argv[2]))

如果我想在pytest中导入此模块,则无法传递这些参数。 尽管我们可以对pytest进行论证,但是这些是pytest框架特有的参数。我们需要使用pytest传递这些sys参数

2 个答案:

答案 0 :(得分:1)

我们可以使用以下代码设置参数

sys.argv.append("ad")
sys.argv.append("ert")

args=["rwsr","sfff"]
  sys.argv[1:]=args

答案 1 :(得分:0)

>read_args.py
import sys
print('args for read_args are: \t')
test2,d_path=sys.argv[1:3]
print(f"d_path:{d_path}, test2:{test2}")

>pytest.py
import sys
import read_args
sys.argv[1:]=sys.argv[3:]
print('args of pytest are: \t')
print(sys.argv)

$ python pytest.py 1 2 3 4

用于read_args的

args是:

d_path:2,test2:1

pytest的

args是:

['pytest.py','3','4']