http://www.oschina.net/question/12_27127#INSTALL
http://www.360doc.com/content/11/0606/23/54470_122122538.shtml
照着以上的文章写了如下的代码,对于我这个不怎么写代码的人来说,敲出如下的代码好艰辛,有木有~~~~(>_<)~~~~
一 main方法自动执行所有test
如果你之前已经使用test*
惯例对测试方法进行命名,那么你就可以将以下代码插入测试模块的结尾:
if __name__ == "__main__": unittest.main()
当你从命令行执行你的测试模块时,其所包含的所有测试都将被运行。如下,testDefaultSize()和testResize()方法都会被自动执行。
把下面2个文件的代码分别保存为rectangle.py,RectangleSizeTestCase.py。
“”“class to be tested”“”
class Rectangle: def __init__(self,size =(40,40)): self.size = size def getSize(self): return self.size def resize(self,width,height): if width < 1 or height <1: raise ValueError,"illegal size" self.size = (width,height) def dispose(self): pass
import unittest from rectangle import Rectangle class RectangleSizeTestCase(unittest.TestCase): def setUp(self): self.rectangle = Rectangle("New Rectangle") def tearDown(self): self.rectangle.dispose() self.rectangle = None def testDefaultSize(self): assert self.rectangle.getSize() == (50,50),'incorrect default size' def testResize(self): self.rectangle.resize(100,100) assert self.rectangle.getSize() == (100,150),'wrong size after resize' if __name__ == "__main__": unittest.main()
我存放文件的目录路径为C:\Python27,这个路径是任意的,只要在执行的时候输入代码文件所在的位置就好:
二 使用testsuite执行test
import unittest from rectangle import Rectangle """执行测试的测试类""" class RectangleSizeTestCase(unittest.TestCase): def setUp(self): self.rectangle = Rectangle("New Rectangle") def tearDown(self): self.rectangle.dispose() self.rectangle = None def testDefaultSize(self): assert self.rectangle.getSize() == (50,50),'incorrect default size' def testResize(self): self.rectangle.resize(100,100) assert self.rectangle.getSize() == (100,150),'wrong size after resize' """构造测试集""" def suite1(): rectangleTestSuite1 = unittest.TestSuite() rectangleTestSuite1.addTest(RectangleSizeTestCase("testDefaultSize")) return rectangleTestSuite1 def suite2(): rectangleTestSuite2 = unittest.TestSuite() rectangleTestSuite2.addTest(RectangleSizeTestCase("testResize")) return rectangleTestSuite2
"""嵌套测试集""" alltests = unittest.TestSuite((suite1(),suite2())) #注意这里只有一个参数 fileresult = open("C:\\Python27\\record.txt","a") #在windows下文件路径要记得进行转义操作 runner = unittest.TextTestRunner(fileresult) runner.run(alltests) #查看unittest.py的源代码可知参数是具体的test方法或testsuite或嵌套的testsuite都行 fileresult.close()