unittest 源代码分析(二)--main.py代码分析

本文详细分析了unittest框架的主入口文件main.py,包括其调用流程:TestProgram初始化,接着解析输入参数,创建测试用例集合,最后执行测试用例。通过此分析,读者可以更好地理解unittest如何运行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 介绍

   main.py是unittest主文件。

2 main.py调用过程

   TestProgram.__init__()  ==>  TestProgram.parseArgs() ==> TestProgram.createTests() ==> TestProgram.runTests()

   __init__() 初始化调用parseArgs()和runTests()

   parseArgs()解析输入参数

   createTests()创建测试用例集合

   runTests()执行测试用例

3 代码和注释

"""Unittest main program"""

import sys
import os
import types
from . import loader, runner
from .signals import installHandler

__unittest = True

#-h 输出帮助信息
FAILFAST     = "  -f, --failfast   Stop on first failure\n"
CATCHBREAK   = "  -c, --catch      Catch control-C and display results\n"
BUFFEROUTPUT = "  -b, --buffer     Buffer stdout and stderr during test runs\n"

# -f  用例遇到失败后停止,不在执行后面的用例
# -c  ctrl-c 中断后执行完输出测试结果

USAGE_AS_MAIN = """\
Usage: %(progName)s [options] [tests]

Options:
  -h, --help       Show this message
  -v, --verbose    Verbose output
  -q, --quiet      Minimal output
%(failfast)s%(catchbreak)s%(buffer)s
Examples:
  %(progName)s test_module               - run tests from test_module
  %(progName)s module.TestClass          - run tests from module.TestClass
  %(progName)s module.Class.test_method  - run specified test method

[tests] can be a list of any number of test modules, classes and test
methods.

Alternative Usage: %(progName)s discover [options]

Options:
  -v, --verbose    Verbose output
%(failfast)s%(catchbreak)s%(buffer)s  -s directory     Directory to start discovery ('.' default)
  -p pattern       Pattern to match test files ('test*.py' default)
  -t directory     Top level directory of project (default to
                   start directory)

For test discovery all test modules must be importable from the top
level directory of the project.
"""

USAGE_FROM_MODULE = """\
Usage: %(progName)s [options] [test] [...]

Options:
  -h, --help    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值