最近一直在学习python unittest自动化测试,今天小练习一下
import unittest
import time
class SampleTest(unittest.TestCase):
def setUp(self):
self.seq = [5,8,'habtha',3.5,16]
def testequal(self):
u'''这个用例测试列表某个值'''
self.assertEqual(self.seq[1],8)
def testgreat(self):
u'''这个用例测试列表某个值是否大于某值'''
self.assertGreater(self.seq[4],15)
def testmatch(self):
u'''这个用例测试列表里面是否包含某个值'''
self.assertTrue('thdd' in self.seq[2])
def testcount(self):
u'''这个用例测试列表里面元素个数'''
self.assertEqual(len(self.seq),5)
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(SampleTest("testequal"))
suite.addTest(SampleTest("testmatch"))
now = time.strftime("%Y-%m-%d-%H-%M-%S")
outfile = open('D:\\'+ now +'_result.html',"w")
runner = unittest.TextTestRunner(outfile)
runner.run(suite)
遇到问题:
1、执行测试后生成的测试结果中没有详细的信息,对报错只显示F 无法查看问题错误信息
2、需要优化 __name__ == "__main__": 执行代码,考虑 将suite 以函数的形式实现
解决问题:
问题1:
待解决~~~
问题2:
import unittest
import time
class SampleTest(unittest.TestCase):
def setUp(self):
self.seq = [5,8,'habtha',3.5,16]
def testequal(self):
u'''这个用例测试列表某个值'''
self.assertEqual(self.seq[1],8)
def testgreat(self):
u'''这个用例测试列表某个值是否大于某值'''
self.assertGreater(self.seq[4],15)
def testmatch(self):
u'''这个用例测试列表里面是否包含某个值'''
self.assertTrue('thdd' in self.seq[2])
def testcount(self):
u'''这个用例测试列表里面元素个数'''
self.assertEqual(len(self.seq),5)
def suite():
suite = unittest.TestSuite()
suite.addTest(SampleTest("testequal"))
suite.addTest(SampleTest("testmatch"))
return suite
if __name__ == "__main__":
su = suite()
now = time.strftime("%Y-%m-%d-%H-%M-%S")
outfile = open('D:\\'+ now +'_result.html',"w")
runner = unittest.TextTestRunner(outfile)
runner.run(su)