2016-07-22 39 views
0

我有一个Python文件,我们称之为script1.py。我正在尝试编写一个名为script1_test.py的单元测试(使用unittest)。 script1是为了从命令行调用并引入一些参数。当脚本1运行时,它开始了与:将需要系统参数的Python脚本导入到单元测试

if __name__ == "__main__" and len(sys.argv) == 6: 
    func1() 
else 
    print "Wrong number of arguments" 
    sys.exit(1) 

我只是想独立代码的主体SCRIPT1 内执行和测试功能(这里称为FUNC1)。但是当我这样做的时候,我在导入阶段一直在main中输入sys.exit。我怎样才能运行测试没有碰到这个错误?

回答

1

当您执行脚本导入时,__name__不等于main,因此您要调用else块。相反,您应该嵌套您的if区块:

if __name__ == "__main__": 
    if len(sys.argv) == 6: 
     func1() 
    else: 
     print "Wrong number of arguments" 
     sys.exit(1)