PyUnit框架学习

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()
原文地址:https://www.cnblogs.com/bangbangjiang/p/3610979.html