zoukankan      html  css  js  c++  java
  • unittest_认识unittest(1)

    unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件。 使用unittest前需要了解该框架的五个概念: 即test case,test suite,test loader,test runner,test fixture。

    • test case:一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前环境准备(setUp),执行测试(run),以及测试后环境的还原(tearDown)。
    • test suite:多个测试用例的集合,测试套件或测试计划。
    • test loader:加载TestCase到TestSuite中的,其中loadTestsFrom*()方法用于寻找TestCase,并创建它们的实例,然后添加到TestSuite中,返回TestSuite实例。
    • test runner:执行测试用例,并将测试结果保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。
    • test fixture:一个测试用例执行前的环境准备以及执行后的环境还原就是一个fixture。

    了解了概念后,我们来看一段简单的代码

    import unittest
    
    
    class Demo(unittest.TestCase):
    
        @classmethod
        def setUpClass(cls) -> None:
            print("setUpClass被执行
    ")
    
        @classmethod
        def tearDownClass(cls) -> None:
            print("tearDownClass被执行")
    
        def setUp(self) -> None:
            print("setup被执行")
    
        def tearDown(self) -> None:
            print("teardown被执行
    ")
    
        def test_a(self):
            print("test_a被执行")
    
        def test_c(self):
            print("test_c被执行")
    
        def test_b(self):
            print("test_b被执行")
            a, b = 1, 2
            assert a+b == 3
    
        def d(self):
            print("d被执行")
    
    
    if __name__ == '__main__':
        unittest.main()

    执行结果

    从脚本和运行结果我们可以得到以下结论:

    • 定义一个测试类时,要继承unittest.TestCase这个类
    • setUpClass()和tearDownClass()在测试类执行前后只会被执行一次
    • setUp()和tearDown()在测试类每个测试用例执行前后都会被执行一次
    • 测试用例必须以test开头,否则不会被执行。
    • 测试用例的执行顺序不是根据代码的先后顺序执行的,而是根据ASCII码的顺序执行的测试用例,ASCII码数字与字母的顺序为:0-9,A-Z,a-z。

    执行流程大致如下

    编写TestCase,由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,最后将运行的结果保存在TextTestResult中。

  • 相关阅读:
    JS中const的使用
    JS的作用域,闭包的理解
    python中函数的默认参数是空数组
    asp.net 导出 Excel
    asp.net 导出 Excel 身份证格式显示格式问题
    HTML5
    JQuery中checkbox选择器
    JQuery中DOM操作(一)
    PL/SQL 创建用户及权限操作
    PL/SQL 表约束
  • 原文地址:https://www.cnblogs.com/testlearn/p/14422594.html
Copyright © 2011-2022 走看看