unittest 测试实例2

来源:互联网 发布:淘宝转化率怎么计算 编辑:程序博客网 时间:2024/05/29 10:52

为了生成更加直观的测试报告,引入了HTMLTestRunner 模块 ,将以html 的格式生成测试结果

为此,引入了HTMLTestRunner.py,它是Python标准库unittest模块的一个扩展。它可以生成直观的HTML测试报告。 
首先,下载HTMLTestRuner.py文件。 
源地址:http://tungwaiyip.info/software/HTMLTestRunner.html 
这是针对Python2.7版本,那么对于Python3.x的使用,需要改动几处。同时谢谢http://www.bubuko.com/infodetail-529431.html的分享。 
具体改动如下: 
第94行,将import StringIO修改成import io 
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer= io.StringIO() 
第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s‘ %(self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTimeElapsed: %s‘ % (self.stopTime-self.startTime)) 
第642行,将if not rmap.has_key(cls):修改成if notcls in rmap: 
第766行,将uo = o.decode(‘latin-1‘)修改成uo = e 
第775行,将ue = e.decode(‘latin-1‘)修改成ue = e 
第778行,将output = saxutils.escape(uo+ue),修改成output = saxutils.escape(str(uo)+str(ue)),

将上述几处改动,保存成功后,再将HTMLTestRunner.py放到C:\Python34\Lib目录中,检验是否加载成功,在Python IDLE 中输入 
import HTMLTestRunner 
若无报错,那么加载成功。


import unittestimport HTMLTestRunnerclass TestAdd(unittest.TestCase):    def setUp(self):        pass    def test_add(self):        self.assertEqual(2+3,5,"testError")    def test_add2(self):        self.assertEqual(0+8,7,"testError")    def tearDown(self):        passdef Suite():    suiteTest = unittest.TestSuite()    suiteTest.addTest(TestAdd("test_add"))    suiteTest.addTest(TestAdd("test_add2"))    return suiteTestif __name__ == '__main__':    filePath = 'D:\\pyResult.html'    fp = file(filePath,'wb')    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="Python Test Report",description="This is Python Report")    runner.run(Suite())
    fp.close()

生成的测试结果截图如下:




0 0