我正在为接受命令行参数的模块编写单元测试。我在模块中使用 optparse 来接受参数。
因此,当我直接执行模块时,我只需键入:-
module.py -e 42 -g 84
Run Code Online (Sandbox Code Playgroud)
到目前为止,在我的单元测试中,我只是创建了一个模块实例来测试然后调用一个特定的方法:-
instance = module.className()
instance.method()
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何将命令行参数从另一个模块(例如单元测试)传递给 module.py 吗?
我是否在我的单元测试中使用 optparse 并在生成 module.py 实例时以某种方式合并?
提前致谢。
小智 7
您只需要修改sys.argv代表命令行参数列表的列表。这个列表对 python 解释器是全局的,所以你不必传递它。
import sys
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-e")
parser.add_option("-g")
print sys.argv # unmodified
(options, args) = parser.parse_args()
print (options, args)
sys.argv = ['module.py','-e','42','-g','84'] # define your commandline arguments here
(options, args) = parser.parse_args()
print (options, args)
Run Code Online (Sandbox Code Playgroud)
注意:不推荐使用 OptionParser 模块,因此如果可能,argparse请切换到(请参阅:http ://docs.python.org/library/argparse.html#module-argparse )。您只需要 Python 2.7。
| 归档时间: |
|
| 查看次数: |
7132 次 |
| 最近记录: |