unittest框架下,测试套件执行时的逻辑是怎样的

img


这边用测试套件来执行所有用例的时候,是用一个执行实例对象中的run方法,传入一个套件实例对象为参数去执行。但跟之前讲过的面向对象的思想方法怎么一一对应啊,转不过来,感觉就是背过程

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在unittest框架中,测试套件是用来管理多个测试用例的容器。在创建一个测试套件实例后,我们可以使用addTest()方法向测试套件中添加测试用例。然后,我们需要创建一个TestRunner对象,该对象包含了执行测试的方法和设置测试结果的方法。
·
在执行测试套件时,TextTestRunner的run()方法会遍历测试套件中的所有测试用例,并调用每个测试用例的run()方法执行测试。当所有测试用例执行完毕后,TextTestRunner会根据测试结果输出测试报告。
·
在代码中,suite.addTest()语句用于向测试套件中添加测试用例,runner = unittest. TextTestRunner()语句创建了一个TextTestRunner实例,runner.run(suite)语句执行了测试套件中的所有测试用例。
·
因此,测试套件实例对象和执行实例对象是两个不同的对象,用于不同的目的。测试套件实例对象用于管理测试用例,而执行实例对象用于执行测试并输出测试结果。

  1. 创建一个测试套件(TestSuite),将需要执行的测试用例添加到测试套件中。
  2. 实例化一个测试运行器(TextTestRunner)。
  3. 使用测试运行器(runner)运行测试套件。
  4. 测试运行器按照测试用例添加的顺序依次执行测试用例。
  5. 每个测试用例执行结束后,测试运行器会将测试结果记录下来。
  6. 最终,测试运行器会将测试结果汇总并输出到控制台或日志文件中。
    在执行测试套件时,还可以使用其他的测试运行器,如HTMLTestRunner、XMLTestRunner等,这些测试运行器可以将测试结果以不同形式展示,方便后续的测试结果分析。