Fixture:进行测试前的准备工作和测试后的清理操作。例如创建临时或是代理数据库,目录,服务进程等。
用例(Case):最小的测试单元,检车特定输入的响应。TestCase作为所有用例的基类,测试case需要继承它。
套件(Suite):测试用例或者套件的集合。需要一直执行的用例采用套件组合到一起。
运行器(Runner):编排和执行测试用例,并将测试结果反馈给用户。运行器可以使用图形化界面,也可以使用文本,或者返回特殊值来标识测试结果。
cmd下:python -m unittest --help
-h, --help 显示unittest命令行帮助信息
-v, --verbose 详细显示运行单测的信息
-q, --quiet 静默模式,减少不必要的输出信息
-b, --buffer 缓存标准输出与标准错误,当执行失败或报错时显示。
-c, --catch 捕获用户的Control+C指令—这里需要继续确定一下
-f, --failfast 当发生错误或者失败则停止运行
python -m unittest test_module1 test_module2 运行指定模块
python -m unittest test_module.TestClass 运行指定类
python -m unittest test_module.TestClass.test_method 运行指定函数
开始目录
-s START, --start-directory START
Directory to start discovery ('.' default)
匹配规则
-p PATTERN, --pattern PATTERN
Pattern to match tests ('test*.py' default)
*目录
-t TOP, --top-level-directory TOP
Top level directory of project (defaults to start directory)
定义计算方法
class Calculator(object):
def add(self, x, y):
return x + y
def sub(self, x, y):
return x - y
def mul(self, x, y):
return x * y
def div(self, x, y):
return x / y
定义一个测试用例
import unittest
from src import Calculator
class TestCalculator(unittest.TestCase):
def setUp(self):
self.calc = Calculator()
print("setUp")
def tearDown(self):
print("tearDown")
def test_add(self):
result = self.calc.add(2, 3)
self.assertEqual(result, 5, u"测试加法。")
print("test_add")
def test_sub(self):
result = self.calc.sub(2, 3)
self.assertEqual(result, -1, u"测试减法。")
print("test_sub")
def test_mul(self):
result = self.calc.mul(2, 3)
self.assertEqual(result, 6, u"测试乘法。")
print("test_mul")
def test_div(self):
result = self.calc.div(4, 2)
self.assertEqual(result, 2, u"测试除法。")
print("test_div")
if __name__ == '__main__':
unittest.main()
运行:python -m unittest case.test_calculator