创建函数
#!/usr/bin/env python
# coding: utf-8 -*-
def add(a, b):
return a+b
def minus(a, b):
return a-b
def multi(a, b):
return a*b
def divide(a, b):
return a/b
测试用例
#!/usr/bin/env python
# coding: utf-8 -*-
import unittest
from mathfunc import *
class TestMathFunc(unittest.TestCase):
"""Test mathfuc.py"""
@classmethod
def setUpClass(cls):
print u"所有用例执行前"
@classmethod
def tearDownClass(cls):
print u"所有用例执行完"
def setUp(self):
print "start"
def tearDown(self):
print "end"
def test_add(self):
"""Test method add(a, b)"""
print "test_add"
self.assertEqual(3, add(1,2))
self.assertNotEqual(3, add(2,2))
def test_minus(self):
"""Test method minus(a, b)"""
print "test_minus"
self.assertEqual(1, minus(3, 2))
def test_multi(self):
"""Test method multi(a, b)"""
print "test_multi"
self.assertEqual(6, multi(2, 3))
# @unittest.skip("skip this case.")
def test_divide(self):
"""Test method divide(a, b)"""
# self.skipTest("do not run this") #不执行该用例
print "test_divide"
self.assertEqual(2, divide(6, 3))
self.assertEqual(2.5, divide(5, 2))
if __name__ == '__main__':
unittest.main()
运行用例
#!/usr/bin/env python
# coding: utf-8 -*-
import unittest
from test_mathfunc import TestMathFunc
from HTMLTestRunner import HTMLTestRunner
if __name__ == '__main__':
suite = unittest.TestSuite()
# 加载测试用例方法1
tests = [
TestMathFunc("test_minus"),
TestMathFunc("test_add"),
TestMathFunc("test_multi"),
TestMathFunc("test_divide")
]
suite.addTests(tests)
# runner = unittest.TextTestRunner(verbosity=2)
# runner.run(suite)
# 输出HTML报告
filepath = 'D:\\pyresult.html'
f = file(filepath, 'wb')
# with open('HTMLReport.html', 'w') as f:
runner = HTMLTestRunner(stream=f,
title='MathFunc Test Report',
description='generated by HTMLTestRunner',
verbosity=2
)
runner.run(suite)
f.close()
# 输出TXT报告
# with open('TextReport.txt', 'a') as f:
# runner = unittest.TextTestRunner(stream=f, verbosity=2)
# runner.run(suite)