python unittest使用及三种执行方式

python

一.直接使用TestCase

import unittest

class Test1(unittest.TestCase):

@classmethod

def setUpClass(self):

print("execute setUpClass")

@classmethod

def tearDownClass(self):

print("execute tearDownClass")

def setUp(self):

print("execute setUp")

def tearDown(self):

print("execute tearDown")

def test_one(self):

print('execute test_one')

self.assertTrue('FOO'.isupper())

def test_two(self):

print('execute test_two')

execute setUpClass

execute setUp

execute test_one

execute tearDown

execute setUp

execute test_two

execute tearDown

execute tearDownClass

Ran 2 tests in 0.003s

OK

二、使用TestSuite
直接写TestCase执行时是按字母排序的顺序执行的,如果要设定测试用例的执行先后顺序则需要将TestCase封装到TestSuite。

import unittest

class Test2(unittest.TestCase):

@classmethod

def setUpClass(self):

print("execute setUpClass")

@classmethod

def tearDownClass(self):

print("execute tearDownClass")

def setUp(self):

print("execute setUp")

def tearDown(self):

print("execute tearDown")

def test_one(self):

print('execute test_one')

self.assertTrue('FOO'.isupper())

def test_two(self):

print('execute test_two')

if __name__ == '__main__':

suite = unittest.TestSuite()

# Test2是要测试的类名,test_two是要执行的测试方法

suite.addTest(Test2("test_two"))

suite.addTest(Test2("test_one"))

runner = unittest.TextTestRunner()

runner.run(suite)

execute setUpClass

execute setUp

execute test_one

execute tearDown

Ran 2 tests in 0.007s

OK

execute setUp

execute test_two

execute tearDown

execute tearDownClass

unittest的setup、teardown会在每个用例执行前后执行一次,如上面测试用例类中有2个测试用例,那么每个用例执行前会执行setup,执行后会执行teardown,即setup、teardown总共会调用2次,但考虑实际自动化测试场景,多个用例只需执行一次setup,全部用例执行完成后,执行一次teardown,针对该种场景,unittest的处理方法是使用setupclass、teardownclass

 

unittest执行的三种方法:

利用python进行测试时,测试用例的加载方式有2种:
  一种是通过unittest.main()来启动所需测试的测试模块;
  一种是添加到testsuite集合中再加载所有的被测试对象,而testsuit里存放的就是所需测试的用例,下面分别列出3种方法的具体使用方式:

1、通过unittest.main()来执行测试用例的方式:

import unittest 

class UCTestCase(unittest.TestCase):

def setUp(self):

#测试前需执行的操作

.....

def tearDown(self):

#测试用例执行完后所需执行的操作

.....

# 测试用例1

def testCreateFolder(self):

#具体的测试脚本

......

# 测试用例2

def testDeleteFolder(self):

#具体的测试脚本

......

if __name__ == "__main__":

unittest.main()

2、通过testsuit来执行测试用例的方式:

import unittest 

# 执行测试的类

class UCTestCase(unittest.TestCase):

def setUp(self):

#测试前需执行的操作

.....

def tearDown(self):

#测试用例执行完后所需执行的操作

.....

# 测试用例1

def testCreateFolder(self):

#具体的测试脚本

......

# 测试用例2

def testDeleteFolder(self):

#具体的测试脚本

......

if __name__ == "__main__":

# 构造测试集

suite = unittest.TestSuite()

suite.addTest(UC7TestCase("testCreateFolder"))

suite.addTest(UC7TestCase("testDeleteFolder"))

# 执行测试

runner = unittest.TextTestRunner()

runner.run(suite)

3、通过testLoader方式:

import unittest 

class TestCase1(unittest.TestCase):

#def setUp(self):

#def tearDown(self):

def testCase1(self):

print 'aaa'

def testCase2(self):

print 'bbb'

class TestCase2(unittest.TestCase):

#def setUp(self):

#def tearDown(self):

def testCase1(self):

print 'aaa1'

def testCase2(self):

print 'bbb1'

if __name__ == "__main__":

#此用法可以同时测试多个类

suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)

suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)

suite = unittest.TestSuite([suite1, suite2])

unittest.TextTestRunner(verbosity=2).run(suite)

以上是 python unittest使用及三种执行方式 的全部内容, 来源链接: utcz.com/z/388061.html

回到顶部