python的unitest的简单使用

python的unitest的简单使用

python的unitest的简单使用

unittest提供一个TestLoader类用于自动创建一个测试集并把单个测试放入到测试集中。
TestLoader自动运行测试用例以test开头的方法的测试方法。
#coding=utf8
'''
unittest提供一个TestLoader类用于自动创建一个测试集并把单个测试放入到测试集中。
TestLoader自动运行测试用例以test开头的方法的测试方法。
在多个测试用例在决定运行哪个测试用例的策略是通过内建函数对测试函数名排序决定的。
通常习惯将测试集组合在一起,以便系统一次运行所有的测试用例。
TestSuite实例添加到一个TestSuite中就像把一个TestCase实例添加到一个TestSuite中。
-----------------------------------------------------------------------------------------
suite1=module1.TheTestSuite()
suite2=module2.TheTestSuite()
alltests=unittest.TestSuite([suite1,suite2])
-----------------------------------------------------------------------------------------
可以将测试用例和测试套件的定义放在与要测试的代码相同的模块中,但将测试代码放在单独的模块中有几个好处:
1、测试模块可以从命令行独立运行。
2、测试代码可以更容易地与运输代码分开。
3、有更少的诱惑改变测试代码,以适应代码测试没有一个很好的理由。
4、测试代码的修改频率要比它测试的代码少得多。
5、测试代码可以更容易重构。
6、用C编写的模块的测试必须在单独的模块中,所以为什么不一致?
7、如果测试策略更改,则不需要更改源代码。
'''
from __future__ import division
from Lib.HTMLTestRunner import HTMLTestRunner
from unittest import TestCase,TestLoader,TestSuite
from source.calcutor import calculatorClass class TestMul(TestCase):
def setUp(self):
pass def test_defaultMul(self):
cal=calculatorClass()
self.assertEqual(cal.mul(),200 , "The result should be equal 200") def test_negtiveMul(self):
cal=calculatorClass(-10,-25)
self.assertEqual(cal.mul(),250 , "The result should be equal 250") def test_floatMul(self):
cal=calculatorClass(0.25,0.4)
self.assertEqual(cal.mul(),0.1, "The result should be equal 0.1") def tearDown(self):
pass class TestDiv(TestCase):
def setUp(self):
pass def test_defaultDiv(self):
cal=calculatorClass()
self.assertEqual(cal.mul(),0.5 , "The result should be equal 0.5") def test_negtiveDiv(self):
cal=calculatorClass(-10,-25)
self.assertEqual(cal.mul(),0.4 , "The result should be equal 250") def test_floatDiv(self):
cal=calculatorClass(0.24,0.4)
self.assertEqual(cal.mul(),0.6, "The result should be equal 0.1") def tearDown(self):
pass def allTest():
''' 创建测试集'''
suite1=TestLoader().loadTestsFromTestCase(TestMul)
suite2=TestLoader().loadTestsFromTestCase(TestDiv)
alltests=TestSuite([suite1,suite2])
return alltests if __name__=="__main__":
'''创建保存测试结果的文件'''
html=file("..\\report.html","wb+")
'''调用HTMLTestRunner类生成html格式测试运行报告'''
runner=HTMLTestRunner(stream=html,title="Test Report",description="The state of the run testcase")
runner.run(allTest())
html.close()
 
05-26 12:31