unittest生成测试报告
unittest生成测试报告
About回到顶部
简单使用回到顶部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import webbrowser import unittest import HTMLTestRunner import BSTestRunner class TestStringMethods(unittest.TestCase): def test_upper( self ): self .assertEqual( 'foo' .upper(), 'FOO' ) def test_isupper( self ): self .assertTrue( 'Foo' .isupper()) if __name__ = = '__main__' : suite = unittest.makeSuite(TestStringMethods) f1 = open ( 'result1.html' , 'wb' ) f2 = open ( 'result2.html' , 'wb' ) HTMLTestRunner.HTMLTestRunner(stream = f1, title = 'HTMLTestRunner版本关于upper的测试报告' , description = '判断upper的测试用例执行情况' ).run( suite) suite = unittest.makeSuite(TestStringMethods) BSTestRunner.BSTestRunner(stream = f2, title = 'BSTestRunner版本关于upper的测试报告' , description = '判断upper的测试用例执行情况' ).run(suite) f1.close() f2.close() webbrowser. open ( 'result1.html' ) webbrowser. open ( 'result2.html' ) |
-
stream是文件句柄。
-
title是测试报告的title。
-
description是测试报告的描述信息。
这样在本地就生成了result1.html
和result2.html
两个HTML文件:
OK,还是比较完美的,再来一点优化:
优化版回到顶部
优化其实很简单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import webbrowser import unittest import HTMLTestRunner import BSTestRunner class TestStringMethods(unittest.TestCase): def test_upper( self ): """判断 foo.upper() 是否等于 FOO""" self .assertEqual( 'foo' .upper(), 'FOO' ) def test_isupper( self ): """ 判断 Foo 是否为大写形式 """ self .assertTrue( 'Foo' .isupper()) if __name__ = = '__main__' : suite = unittest.makeSuite(TestStringMethods) f1 = open ( 'result1.html' , 'wb' ) f2 = open ( 'result2.html' , 'wb' ) HTMLTestRunner.HTMLTestRunner(stream = f1, title = 'HTMLTestRunner版本关于upper的测试报告' , description = '判断upper的测试用例执行情况' ).run( suite) suite = unittest.makeSuite(TestStringMethods) BSTestRunner.BSTestRunner(stream = f2, title = 'BSTestRunner版本关于upper的测试报告' , description = '判断upper的测试用例执行情况' ).run(suite) f1.close() f2.close() webbrowser. open ( 'result1.html' ) webbrowser. open ( 'result2.html' ) |
其实就是为每个用例方法添加上注释说明。
Python2.x版本回到顶部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import webbrowser import unittest import HTMLTestRunner import BSTestRunner class TestStringMethods(unittest.TestCase): def test_upper( self ): u """判断 foo.upper() 是否等于 FOO""" self .assertEqual( 'foo' .upper(), 'FOO' ) def test_isupper( self ): u """ 判断 Foo 是否为大写形式 """ self .assertTrue( 'Foo' .isupper()) if __name__ = = '__main__' : suite = unittest.makeSuite(TestStringMethods) f1 = open ( 'result1.html' , 'wb' ) f2 = open ( 'result2.html' , 'wb' ) HTMLTestRunner.HTMLTestRunner( stream = f1, title = u 'HTMLTestRunner版本关于upper的测试报告' , description = u '判断upper的测试用例执行情况' ).run(suite) suite = unittest.makeSuite(TestStringMethods) BSTestRunner.BSTestRunner( stream = f2, title = u 'BSTestRunner版本关于upper的测试报告' , description = u '判断upper的测试用例执行情况' ).run(suite) f1.close() f2.close() webbrowser. open ( 'result1.html' ) webbrowser. open ( 'result2.html' ) |
各版本的两文件的源码,保存到指定位置即可。
有志者,事竟成,破釜沉舟,百二秦关终属楚;
苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
想到与得到中间还有两个字——做到。