• UnitTest测试套件及运行器


    1.Skip装饰器与断言使用

      1.@unittest.skip():无理由跳过,强制跳过

      2.@unittest.skipUnless(1 == 2,"跳过"),条件为假时就跳过,条件为真就执行用例

      3.@unittest.skipIf(1 == 1,"if跳过"),条件为真就跳过,条件为假就不跳过

      4.@unittest.expectedFailure:当这条测试用例出现错误时,系统选择忽略错误

    几种skip装饰器示例:

    import unittest

    from selenium import webdriver


    class Test_demo(unittest.TestCase):

    def test_1(self):
    driver = webdriver.Chrome()
    driver.get('http://www.baidu.com')
    ti = driver.title
    print(ti)
    @unittest.skip("这条用例不执行,暂时跳过")
    @unittest.skipUnless(1 == 2,"跳过")
    @unittest.skipIf(1 == 1,"if跳过")
    @unittest.expectedFailure
    def test_2(self):
    print("run test2")

    def test_3(self):
    print("run test3")

    # @unittest.expectedFailure
    def test_4(self):
    print(3/0)

    if __name__ == '__main__':
    unittest.main()

     断言

        

    断言:
    通过self.assert引出
    常用的几种断言*****:
    self.assertEqual()
    self.assertTrue()
    self.assertIsNone()
    self.assertAlmostEqual():多用于浮点数。判断是否几乎相等(例如0.3154和0.3153)

    断言示例:
    class Test_demo(unittest.TestCase):

    def test_1(self):
    driver = webdriver.Chrome()
    driver.get('http://www.baidu.com')
    ti = driver.title
    print(ti)
    self.assertEqual(ti,'百度一下,你就知道',msg='断言失败')
    # self.assertNotEqual(ti,'百度一下,你就知道',msg='Not断言失败')

    if __name__ == '__main__':
    unittest.main()

    测试套件与运行器:

      

    测试套件和运行器是UnitTest框架特有的产物,主要用于管理测试用例的运行

    创建测试套件时,需要在UnitTest框架以外进行创建

    示例:   

    import os
    import unittest
    from unittest_skip import Test_demo
    from HTMLTestRunner import HTMLTestRunner
    #创建测试套件,其本质就是一个list集合
    suite = unittest.TestSuite()
    1.添加指定的测试用例
    suite.addTest(Test_demo('test_4'))#通过unitDemo直接添加test_case4这一个测试用例
    suite.addTest(Test_demo('test_3'))
    2.添加多条测试用例
    cases = [Test_demo('test_1'),Test_demo('test_2')]
    suite.addTests(cases)
    方法3
    3. 设置运行的条件,所有符合条件的py文件都会被执行,文件中的测试用例会依照原本的顺序运行
    test_dir = './'
    discover = unittest.defaultTestLoader.discover(start_dir=test_dir, pattern='unit*.py')
    4.运行指定的类对象中的测试用例
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Test_demo))
    5.运行执行名称的类对象中的测试用例
    suite.addTests(unittest.TestLoader().loadTestsFromName('unittest_skip.Test_demo'))
    创建运行器,执行测试套件
    run = unittest.TextTestRunner()
    run.run(suite)

    HTMLTestRunner测试报告:

    1. py文件复制粘贴在Lib路径下,通过导包运行

    2. 其本质是测试报告运行器,与TextTestRunner差不多


    # 创建测试报告运行器
    report_name = '这是段誉写的测试报告'
    report_title = '这里是段誉标题'
    report_desc = '鸭梨你真的很过分,因为我才讲过'
    report_path = './report/'
    report_file = report_path + 'report2.html'
    # 判断report_path是否存在,如果不存在则新增一个该路径
    if not os.path.exists(report_path):
    os.mkdir(report_path)
    else:
    pass
    # 生成测试报告
    with open(report_file, 'wb') as report:
    # 添加测试用例
    suite.addTest(Test_demo('test_3')) # 通过UnitDemo直接添加test_3这一个测试用例
    suite.addTest(Test_demo('test_2'))
    suite.addTest(Test_demo('test_4'))
    # 套件通过TextTestRunner对象进行运行≈unittest.main()
    # 如果结合HTMLTestRunner使用,则需要调用HTMLTestRunner中的运行器
    htmlrunner = HTMLTestRunner(stream=report,title=report_title,description=report_desc)
    htmlrunner.run(suite)
    # 与TextTestRunner比较
    # ttrunner = unittest.TextTestRunner()
    # ttrunner.run(suite)
    report.close()

     

     

  • 相关阅读:
    [SSRS] Use Enum values in filter expressions Dynamics 365 Finance and Operation
    Power shell deploy all SSRS report d365 FO
    display method in Dynamics 365 FO
    How To Debug Dynamics 365 Finance and Operation
    Computed columns and virtual fields in data entities Dynamics 365
    Azure DevOps for Power Platform Build Pipeline
    Create readonly entities that expose financial dimensions Dynamics 365
    Dataentity call stack dynamics 365
    Dynamics 365 FO extension
    Use singletenant servertoserver authentication PowerApps
  • 原文地址:https://www.cnblogs.com/Murraya/p/12544045.html
Copyright © 2020-2023  润新知