Python单元测试在测试用例之前执行main()

2024-03-29 12:37:59 发布

您现在位置:Python中文网/ 问答频道 /正文

一般来说,我对单元测试比较陌生,我正在尝试为我用Python开发的脚本生成单元测试。该脚本被设计为接受一个数据文件和几个命令行参数,然后在更新数据库时按顺序运行几个函数。例如,下面是脚本的运行方式:

import argparse
if __name__ == "__main__": 
    parser = argparse.ArgumentParser(description='Script to process data files')
    parser.add_argument('-f', help='The absolute file_path to the source file')
    args = parser.parse_args()
    main(args)

def main(args):
    file_info = get_file_info(args)
    process1(args, file_info)
    process2(args, file_info)

def file_info(args):
    file_info = {'path':args.file_path...}
    ...
    return file_info

def process1(args):
    #update database1
    ...

def process2(args):
    #update database2
    ...

如您所见,process1和process2是用来修改数据库的,而不是返回值,所以检查它们是否正常工作的唯一方法就是检查数据库,看看它是否具有正确的值。我可以在单元测试中很容易地做到这一点,但是我想在对main函数的单独调用上运行类似的单元测试。所以我希望我的单元测试看起来像这样:

^{pr2}$

get_file_info()函数返回一个字典,因此我可以测试它。在

然后我要运行我的脚本的一些预期结果。我能像这样在Test_Load类中调用我的脚本main吗?还有没有更好的方法来分组这些单元测试,这样它们就可以独立运行了?在


Tags: topath函数info脚本数据库parsermain