zoukankan      html  css  js  c++  java
  • Python单元测试框架unittest

    • 在unittest.main()中加 verbosity 参数可以控制输出的错误报告的详细程度,默认是 1,如果设为 0,则不输出每一用例的执行结果,如果设为 2,则输出详细的执行结果;
    • 测试用例忽略
      @unittest,skip(reason):无条件跳过
      @unittest.skipIf(condition, reason):当condition为True时跳过
      @unittest.skipUnless(condition, reason):当condition为False时跳过 
    • 控制用例的执行顺序
    方法1: 通过TestSuite按照顺序添加想要执行的方法
    suite = unittest.TestSuite()
    testcases = [TestClass('method_c'), TestClass('method_b'),TestClass('method_a')]
    suite.addTests(testcases)
    unittest.TextTestRunner(verbosity=2).run(suite)

        方法2:顺应testunit的执行顺序,就是通过控制方法名字来实现

    test_a_casename  test_b_casename  test_c_casename 
    • 将结果输出到文件中   
    suite = unittest.TestSuite()
    testcases = [TestClass('method_c'), TestClass('method_b'),TestClass('method_a')]
    suite.addTests(testcases)
    with open('report.txt', 'a') as f:
        runner = unittest.TextTestRunner(stream=f, verbosity=2)
        runner.run(suite)

    执行此文件,可以看到,在同目录下生成了report.txt

    • setUp和tearDown在每次执行case前后都执行了一次
      如果想要在所有case执行之前准备一次环境,并在所有case执行结束之后再清理环境,我们可以用 setUpClass() 与
           tearDownClass():
    import unittest
    class Test(unittest.TestCase):    
        @classmethod
        def setUpClass(cls):
            print "This setUpClass() method only called once."
        @classmethod
        def tearDownClass(cls):
            print "This tearDownClass() method only called once too."      
        def test_a(self):
            print 'aaaaaaaaaaa'
        def test_b(self):
            print 'bbbbbbbbbb'
    if __name__ == '__main__':
        unittest.main()
    

    运行结果:

    This setUpClass() method only called once.
    aaaaaaaaaaa
    .bbbbbbbbbb
    .This tearDownClass() method only called once too.
    
    ----------------------------------------------------------------------
    Ran 2 tests in 0.000s
    
    OK
    
    • 生成html报告
    我们下载HTMLTestRunner.py,并放到当前目录下,或者你的 Python的Lib目录下,就可以导入运行了。
    下载地址:
    灰蓝修改版:HTMLTestRunner.py(已调整格式,中文显示)   https://pan.baidu.com/s/1b0eD41ml8fMdTO7nsBBcjA
    with open('report.html', 'w') as f:
            runner =HTMLTestRunner(stream=f, title='demotest',description= 'htmlrunner', verbosity=2)
            runner.run(suite)
    
     
     
  • 相关阅读:
    Python for i 循环
    Python 输入分数并评
    用户名和密码的输入
    cocos2d-x 3.0学习
    VS2008 ShotKey
    Cocos2d-x 3.0的安装方法
    VFC
    一、在WIN7 64位系统平台,VS2013环境下安装WTL90_4090_RC1(2014-04-01)
    http://www.vcf-online.org/
    Win7 64位 VS2012 安装 Qt5
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/9505604.html
Copyright © 2011-2022 走看看