【发布时间】:2011-11-17 11:45:27
【问题描述】:
我将快速解释我的意思。
我正在使用 python 开发一个项目,其中有多个模块在执行部分工作。例如,假设我有一个名为 Parser.py 的模块,并且该模块有一个函数 parseFile(),我的主模块 Main.py 调用它来解析一些文件。
截至目前,我在 Parser.py 中使用 main 方法
if __name__ == "__main__":
line_list = parseFile(sys.argv[1])
out_file = open(sys.argv[2], "w")
for i in range(len(line_list)):
out_file.write(line_list[i].get_string(True))
解析究竟做了什么并不重要,重要的是如果你调用它,第一个参数将是解析的输入文件,第二个参数是解析的输出文件。
所以,我实际上在做的是使用批处理文件通过典型的输入、输出、基线系统来验证解析器的结果...
ECHO Set the test, source, input, output and baseline directories
set TESTDIR=%CD%
set SRCDIR=%CD%\..\pypro\src
set INDIR=%CD%\input
set OUTDIR=%CD%\output
set BASEDIR=%CD%\baseline
:: Parser.py main method is base for unit testing on parsing
ECHO Begin Parser testing
cd %INDIR%\Parser
FOR %%G IN (*.psma) DO %SRCDIR%\Parser.py %%G %OUTDIR%\Parser\%%G
ECHO Parser testing complete
cd %TESTDIR%
"C:\Program Files\WinMerge\winmergeU.exe" "%OUTDIR%" "%BASEDIR%"
正如您所看到的,它将结果与基线进行比较,因此如果有任何更改,程序员就会知道它不再有效,或者要求是错误的。
这个方法有什么问题吗?我这样做是因为它很容易。我的计划是继续使用尽可能多的有效且有意义的模块,以及 pydev 中的一套 pyunit 测试......
【问题讨论】:
标签: python module batch-file main