一、unittest的常见语句

  1.  assertEqual(a, b)      判断:a == b

  2. assertNotEqual(a, b)    判断: a != b

  3. assertTrue(x)      bool(x) is True

  4. assertFalse(x)   bool(x) is False

  5. assertIs(a, b)    a  is  b
    assertIsNot(a, b)   a  is not b
    assertIsNone(x)   x  is  none
    assertIsNotNone(x)    x  is  not  none
    assertIn(a, b)    a  in  b
    assertNotIn(a, b)   a is  not  b
    assertIsInstance(a, b) 
    assertNotIsInstance(a, b) not isinstance(a, b)

  6. assertGreater(a, b) a>b

  7. assertGreaterEqual(a, b)  a >= b

  8. assertLess(a, b)    a < b

  9. assertLessEqual(a, b)     a <= b

 

二、unittest重写和套件

    2.1 runtest方法。   2.2 test开头

import unittest
2.1方式一:重写  runtest()方法
# class ReWrite(unittest.TestCase):   #创建子类继承父类
#     def runTest(self):   #创建runtest方法,每个类中只能写一条
#         print('重写')
#
#     def runTest02(self):  # 这条无效,不会被执行
#         print('重写2')

2.2方式二:重写  以test开头
class login(unittest.TestCase):
    def test01(self):
        self.assertIsInstance(23.1,float)
        print('test01')

    def test02(self):
        self.assertGreater(2,1,'前个值大于后一个值')
        print('test02')

    def test03(self):
        self.assertIs(1,1,'两值相等')
        print('test03')
    <部分一>
2.3测试套件 方式一:通过addtest添加case,其中case可以不用test开头。只执行添加的case
………………复制<部分一>
if __name__=='__main__': 
login_suite = unittest.TestSuite() #用unittest.TestSuite实例化测试套件对象 login_suite.addTest(login('test01')) #使用addtest添加case, 类(方法) login_suite.addTest(login('test02')) unittest.main(defaultTest='login_suite') #执行测试套件对象 字符串格式 ’测试套件对象‘

2.4测试套件:方式二(通过makeSuite添加以test开头的case) 执行套件所有case
………………复制<部分一>
if  __name__=='__main__':
    login_suite = unittest.TestSuite(unittest.makeSuite(login))   #用unittest.TestSuite实例化测试套件对象,makeSuite添加类
    unittest.main(defaultTest='login_suite')    #执行套件所有case

三、加载并执行测试用例

     unittest 提供一个TestLoader类用于自动创建一个测试集,并将单个测试用例放到测试集中。TestLoader自动运行以test开头的测试方法。

3.1  增加类下的所有用例

     loadTestsFromTestCase

     load_suite =unittest.TestSuite(unittest.makeSuite(login))

import unittest
class login(unittest.TestCase):
    def test01(self):
        self.assertIsInstance(23.1,float)
        print('test01')

    def test02(self):
        self.assertGreater(2,1,'前个值大于后一个值')
        print('test02')


    def test03(self):
        self.assertIs(1,1,'两值相等')
        print('test03')

#loadTestsFromTestCase 增加类下的所有用例
if  __name__=='__main__':
    load_suite = unittest.TestLoader().loadTestsFromTestCase(login)  方法一
load_suite =unittest.TestSuite(unittest.makeSuite(login)) 方法二 unittest.main(defaultTest
='load_suite')

  3.2 增加模块下的所有用例

import unittest
import demo_01 #注意:要执行本模块的用例,需导入该模块

class login(unittest.TestCase):
    def test01(self):
        self.assertIsInstance(23.1,float)
        print('test01')

    def test02(self):
        self.assertGreater(2,1,'前个值大于后一个值')
        print('test02')

    def test03(self):
        self.assertIs(1,1,'两值相等')
        print('test03')

class login02(unittest.TestCase):
    def test04(self):
        self.assertIsInstance(23.1,float)
        print('test04')

    def test05(self):
        self.assertGreater(2,1,'前个值大于后一个值')
        print('test05')

    def test06(self):
        self.assertIs(1,1,'两值相等')
        print('test06')

#增加模块下的所有用例
if  __name__=='__main__':
    loadmodule_suite = unittest.TestLoader().loadTestsFromModule(demo_01)  #⚠️导入本模块
    unittest.main(defaultTest='loadmodule_suite')

  3.3 使用字符串的方式加载用例

import unittest
import demo_01 #注意:要执行本模块的用例,需导入该模块

class login(unittest.TestCase):
    def test01(self):
        self.assertIsInstance(23.1,float)
        print('test01')

    def test02(self):
        self.assertGreater(2,1,'前个值大于后一个值')
        print('test02')

    def test03(self):
        self.assertIs(1,1,'两值相等')
        print('test03')

class login02(unittest.TestCase):
    def test04(self):
        self.assertIsInstance(23.1,float)
        print('test04')

    def test05(self):
        self.assertGreater(2,1,'前个值大于后一个值')
        print('test05')

    def test06(self):
        self.assertIs(1,1,'两值相等')
        print('test06')

#使用字符串的方式加载用例
if  __name__=='__main__':
    load_suite = unittest.TestLoader().loadTestsFromName('demo_01.login02') #⚠️导入本模块
    unittest.main(defaultTest='loadmodule_suite')

   3.4 组合两个模块下,不同类的case

import unittest
import demo_01
import unit_test

suite01 =unittest.TestLoader().loadTestsFromName('demo_01.login.test02')  #'模块1名.类名.方法名'
suite02 =unittest.TestLoader().loadTestsFromName('unit_test.TestDemo.test_notequal')   #'模块2名.类名.方法名'

main_suite =unittest.TestSuite()
main_suite.addTests(suite01)
main_suite.addTests(suite02)

unittest.main(defaultTest='main_suite')

 

posted on 2020-04-12 19:05  喵小超  阅读(1144)  评论(0编辑  收藏  举报