首页 > 编程语言 > 详细

python:unittest(测试框架)

时间:2015-12-09 21:39:31      阅读:395      评论:0      收藏:0      [点我收藏+]

一,基本概念

  • 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

python:unittest(测试框架)

原文:http://www.cnblogs.com/dmir/p/5034245.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!