首页 > 编程语言 >python unitest 测试套件TestSuite()

python unitest 测试套件TestSuite()

时间:2023-06-17 15:34:42浏览次数:45  
标签:TestSuite unitest python unittest 套件 runner 测试用例 测试 suite

unittest框架提供了多种测试套件的使用方法,用于组织和执行测试用例。以下是一些常见的测试套件使用方法及其示例:

1. 使用unittest.TestSuite()创建测试套件,然后使用addTest()方法添加测试用例。

import unittest

class MyTestCase(unittest.TestCase):
def test_addition(self):
self.assertEqual(2 + 2, 4)

def test_subtraction(self):
self.assertEqual(5 - 3, 2)

suite = unittest.TestSuite()
suite.addTest(MyTestCase('test_addition'))
suite.addTest(MyTestCase('test_subtraction'))

runner = unittest.TextTestRunner()
runner.run(suite)

2. 使用unittest.TestLoader()的loadTestsFrom...()方法从模块、类或测试方法中加载测试用例,并将它们添加到测试套件中。

 

import unittest

class MyTestCase(unittest.TestCase):
def test_addition(self):
self.assertEqual(2 + 2, 4)

def test_subtraction(self):
self.assertEqual(5 - 3, 2)

loader = unittest.TestLoader()
suite = unittest.TestSuite()

# 从模块加载测试用例
suite.addTests(loader.loadTestsFromModule(MyTestCase))

# 从类加载测试用例
suite.addTests(loader.loadTestsFromTestCase(MyTestCase))

# 从测试方法加载测试用例
suite.addTests(loader.loadTestsFromName('test_addition', MyTestCase))

runner = unittest.TextTestRunner()
runner.run(suite)

3. 使用unittest.TestSuite()的addTests()方法批量添加测试套件。

import unittest

class MyTestCase1(unittest.TestCase):
def test_addition(self):
self.assertEqual(2 + 2, 4)

class MyTestCase2(unittest.TestCase):
def test_subtraction(self):
self.assertEqual(5 - 3, 2)

suite1 = unittest.TestLoader().loadTestsFromTestCase(MyTestCase1)
suite2 = unittest.TestLoader().loadTestsFromTestCase(MyTestCase2)

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

runner = unittest.TextTestRunner()
runner.run(suite)

4.使用unittest.defaultTestLoader.discover()方法自动发现并加载测试用例。

import unittest

# 自动发现并加载指定目录下的所有测试用例
suite = unittest.defaultTestLoader.discover('tests')

runner = unittest.TextTestRunner()
runner.run(suite)

 

5.使用unittest.TestSuite()的addTest()方法添加其他测试套件。

import unittest

# 创建多个测试套件
suite1 = unittest.TestLoader().loadTestsFromTestCase(MyTestCase1)
suite2 = unittest.TestLoader().loadTestsFromTestCase(MyTestCase2)

# 创建主测试套件并添加其他测试套件
suite = unittest.TestSuite()
suite.addTest(suite1)
suite.addTest(suite2)

runner = unittest.TextTestRunner()
runner.run(suite)

6.使用unittest.TestSuite()的addTests()方法批量添加测试套件。

import unittest

# 创建多个测试套件
suite1 = unittest.TestLoader().loadTestsFromTestCase(MyTestCase1)
suite2 = unittest.TestLoader().loadTestsFromTestCase(MyTestCase2)

# 创建主测试套件并批量添加其他测试套件
suite = unittest.TestSuite()
suite.addTests([suite1, suite2])

runner = unittest.TextTestRunner()
runner.run(suite)

注意事项:

  • 在使用测试套件时,需要保证测试用例的命名规范和组织结构的一致性,以确保测试套件能够正确地加载和执行测试用例。
  • 在使用自动发现功能时,需要将测试用例放置在指定目录下,并按照一定的命名规则组织测试文件和测试类,以便自动发现并加载测试用例。
  • 可以根据需要嵌套组合多个测试套件,以构建更复杂的测试场景和测试用例组合。

标签:TestSuite,unitest,python,unittest,套件,runner,测试用例,测试,suite
From: https://www.cnblogs.com/yund/p/17487514.html

相关文章

  • python unitest测试用例
    unittest框架的测试用例有三种常见的写法:函数式、类式和装饰器式。函数式写法:importunittestdeftest_sum(self):result=sum([1,2,3])self.assertEqual(result,6)if__name__=='__main__':unittest.main() 注意事项:使用函数式写法时,测......
  • Python 深浅拷贝
    Python深浅拷贝一、数字、字符串对于数字和字符串而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。importcopy##########数字、字符串#########n1=123#n1="evescn"print(id(n1))###赋值##n2=n1print(id(n2))###浅拷贝##n2......
  • python 生成器 yield
    生成器属于迭代器https://mp.weixin.qq.com/s/F3GLVY2EUpISpt_koCDmWg生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方......
  • python之json和ymal模块
    json和ymal是常用的数据交换格式,ymal可以看做是json的超集。1json格式json(JavaScriptObjectNotation)是一种轻量级的数据交换格式,常用于在不同系统之间进行数据传输和存储。它由键值对构成的集合组成,通常以文件扩展名.json命名。JSON的结构非常简单,有两种基本的数据结构:1.......
  • Python自学整理
    Python对大小写敏感。在Windows下可以不写第一行注释:#!/usr/bin/python3第一行注释标的是指向python的路径,告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器。此外还有以下形式(推荐写法):#!/usr/bin/envpython3这种用法先在env(环境变量)设置里查找pyth......
  • Python 文件操作(转载)
    Python文件操作操作文件时,一般需要经历如下步骤打开文件操作文件一、打开文件文件句柄=open('文件路径','模式')打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。打开文件的模式有r,只读模式(默认)。w,只......
  • Python os 模块简述
    os模块简介os就是“operatingsystem”的缩写,顾名思义,os模块提供的就是各种Python程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页也可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出OSError异常或其子类异常。impo......
  • Python程序与设计
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Python数据类型-字典与集合
    """题目1:下面关于字典的定义正确的是:CA.d={1,}B.d={1,2:3,4}C.d={'name':'xinlan','age':18}D.d={[1,2]:[3,4],'age':18}"""#题目2:请创建一个字典用来表示你自己的个人信息。有哪些key由你自己来决定。my_info={'name':&......