zoukankan      html  css  js  c++  java
  • 【Android自动化】unittest测试框架关于用例执行的几种方法

     1 # -*- coding:utf-8 -*-
     2 import unittest
     3 
     4 
     5 class test(unittest.TestCase):
     6 
     7     def setUp(self):
     8         print 'This is the setup msg'
     9 
    10     def tearDown(self):
    11         print 'This is the teardown msg'
    12 
    13     def test1(self):
    14         print 'This is the first testcase'
    15 
    16     def test2(self):
    17         print 'This is the second testcase'
    18 
    19     def test3(self):
    20         print 'This is the third testcase'
    21 
    22 运行方法一:
    23 if __name__ == '__main__':
    24     unittest.main()
    25 通过unittest.main()执行时,main会调用TextTestRunner中的run来执行
    26 
    27 运行方法二:
    28 suite = unittest.TestLoader().loadTestsFromTestCase(test)
    29 unittest.TextTestRunner().run(suite)
    30 通过创建一个测试套,将所有用例全部加载到测试套中,然后直接调用TextTestRunner方法能运行测试套(此时测试套中的用例执行还是无规则,不一定会按用例顺序进行执行)
    31 
    32 运行方法三:
    33 suite = unittest.TestSuite()
    34 suite.addTest(test('test3'))
    35 unittest.TextTestRunner().run(suite)
    36 通过创建一个测试套,给测试套中增加一条测试用例,然后再调用TextTestRunner方法单独执行该测试用例
    37 
    38 运行方法四:
    39 suite = unittest.TestSuite()
    40 suite.addTest(test('test3'))
    41 suite.addTest(test('test1'))
    42 unittest.TextTestRunner().run(suite)
    43 通过创建一个测试套,给测试套中连续增加两条测试用例,然后再调用TextTestRunner方法执行该测试用例,此时会按照加载用例的顺序进行执行用例,但这种方法有点土,不强大(不建议使用)
    44 
    45 运行方法五:
    46 suite = unittest.TestSuite()
    47 suite.addTests([test('test3'),test('test1'),test('test2')])
    48 unittest.TextTestRunner().run(suite)
    49 通过创建一个测试套,直接通过addTests()方法,添加一个用例列表进去,然后再调用TextTestRunner方法执行测试用例,此种方法能让unitest按照想要的执行顺序进行执行用例(对用例执行顺序有要求的此方法比较建议使用)
    50 
    51 运行方法六:
    52 def runTest(testcaseclass,testcase=[]):
    53     suite = unittest.TestSuite()
    54     for case in testcase:
    55         suite.addTest(testcaseclass(case))
    56     unittest.TextTestRunner().run(suite)
    57 runTest(test,['test2','test3','test1'])
    58 
    59 通过定义一个unitest运行方法,后面执行时直接调用该自定义方法,给上对应的赋值,程序就会按照想 要的执行程序进行执行(此种方法比较好,只要建立一个公共方法,后面在其它模块中直接调用,省去重复敲代码)
  • 相关阅读:
    129. Sum Root to Leaf Numbers
    113. Path Sum II
    114. Flatten Binary Tree to Linked List
    112. Path Sum
    100. Same Tree
    300. Longest Increasing Subsequence
    72. Edit Distance
    自定义js标签库
    JS 实现Table相同行的单元格自动合并示例代码
    mysql 高版本only_full_group_by 错误
  • 原文地址:https://www.cnblogs.com/aziji/p/9284356.html
Copyright © 2011-2022 走看看