python:unittest(测试框架)

一,基本概念

  • TestCase:所有测试用例的基类
  • TestLoad:加载测试用例,返回TestSuite(测试套件)
  • TestSuite:创建测试套件
  • TextTestRunner:运行测试用例
  • TextTestResult:测试结果(包含 运行多少,错误多少,失败多少)

二,创建测试用例类

  1. 必须继承TestCase
  2. 测试用例的名字必须以test开头
  3. 定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
  4. 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
  5. 调用unittest.main()启动自动测试
  6. 如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。

三,有选择的测试

  • unittest.skip(reason)
  • unittest.skipIf(condition, reason)
  • unittest.skipUnless(condition, reason)
  • unittest.expectedFailure()
# coding=utf-8

class testclass:

    def sum(self , x, y):
return x + y def sub(self , x, y):
return x - y
#coding=utf-8
import unittest
from myclass import myclass class simpleTest(unittest.TestCase):
def setUp(self):
print 'start test.....'
self.tclass=myclass.testclass() def tearDown(self):
print 'end test.....' def testsum(self):
self.assertEqual(self.tclass.sum(1, 2),3,'sum test fail') def testsub(self):
self.assertEqual(self.tclass.sub(2, 1),1, 'sub test fail') if __name__ == '__main__':
# suite=unittest.TestLoader().loadTestsFromTestCase(simpleTest)
# unittest.TextTestRunner.verbosity(2).run(suite) for key in dir(unittest):#查看该模块所有类
print key unittest.main()
#coding=utf-8
import sys
import unittest from myclass import myclass #测试模块中某一个类中的函数
#定义两个测试用例
class mytest(unittest.TestCase):
def setUp(self):
self.tclass=myclass.testclass() def tearDown(self):
pass @unittest.skip("skipping")
def testsum(self):
self.assertEqual(self.tclass.sum(1, 2),3,'test sum fail') @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
def testsub(self):
self.assertEqual(self.tclass.sub(2, 1),1,'test sum fail') if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(mytest)#构建测试套件
# suite = unittest.TestSuite([suite1, suite2]) 可以添加多个套件
result= unittest.TextTestRunner(verbosity=2).run(suite)
print result
上一篇:oracle dual 表


下一篇:在Vista或Windows 7系统上安装Sharepoint 2007