将需要系统参数的 Python 脚本导入单元测试
Importing a Python script that requires system arguments into unit test
我有一个 Python 文件,我们称它为 script1.py。我正在尝试编写一个名为 script1_test.py 的单元测试(使用 unittest)。 script1 旨在从命令行调用并接受一些参数。当脚本 1 为 运行 时,它开始于:
if __name__ == "__main__" and len(sys.argv) == 6:
func1()
else
print "Wrong number of arguments"
sys.exit(1)
我只是想在 script1 中执行和测试一个函数(这里称为 func1)
独立于代码主体。但是当我这样做时,我在导入阶段一直从 main 中点击 sys.exit 。我怎样才能 运行 测试而不遇到这个错误?
当您导入脚本时,__name__
不等于 main,因此您正在调用 else
块。相反,您应该嵌套 if
块:
if __name__ == "__main__":
if len(sys.argv) == 6:
func1()
else:
print "Wrong number of arguments"
sys.exit(1)
我有一个 Python 文件,我们称它为 script1.py。我正在尝试编写一个名为 script1_test.py 的单元测试(使用 unittest)。 script1 旨在从命令行调用并接受一些参数。当脚本 1 为 运行 时,它开始于:
if __name__ == "__main__" and len(sys.argv) == 6:
func1()
else
print "Wrong number of arguments"
sys.exit(1)
我只是想在 script1 中执行和测试一个函数(这里称为 func1) 独立于代码主体。但是当我这样做时,我在导入阶段一直从 main 中点击 sys.exit 。我怎样才能 运行 测试而不遇到这个错误?
当您导入脚本时,__name__
不等于 main,因此您正在调用 else
块。相反,您应该嵌套 if
块:
if __name__ == "__main__":
if len(sys.argv) == 6:
func1()
else:
print "Wrong number of arguments"
sys.exit(1)