zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    python中xlrd模块
    2021, 8, 26模拟赛
    2021, 8,24 模拟赛
    每天挂 0 的小技巧
    2021,8,23 模拟赛
    异常处理
    64位 windows10,MYSQL8.0.13重置密码(忘记密码或者无法登录)
    Android仓库
    学习笔记索引
    「学习笔记」各类容斥反演总结
  • 原文地址:https://www.cnblogs.com/bangbangjiang/p/3610979.html
Copyright © 2011-2022 走看看