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