python的UnitTest使用

第三方的类库
摘要由CSDN通过智能技术生成

UnitTest核心要素(unitest的组成)

1. TestCase(最核心的模块)

Testcase(测试用例),注意这个测试用例是unittest框架的组成部分,不是手工和自动化中我们所说的用例( Test Case)
主要作用:每个Testcase(测试用例)都是一个代码文件,在这个代码文件中来书写真正的用例代码

2. TestSuite

Testsuite(测试套件),用来管理组装(打包)多个TestCase(测试用例)的

3. TestRunner

TestRunner(测试执行,测试运行),用来执行TestSuite(测试套件)的

4. TestLoader

TestLoader(测试加载),功能是对Testsuite(测试套件)功能的补充,管理组装(打包)多个Testcase(测试用例)的

5.Fixture

Fixture(测试夹具),书写在Testcase(测试用例)代码中,是一个代码结构,可以在每个方法执行前后都会执行的内容
举例:
登录的测试用例,每个用例中重复的代码就可以写在Fixture代码结构中,只写一遍,但每次用例方法的执行,都会执行 Fixture中的代码
1.打开浏览器2.输入网址

----------------------------------------------------------

1. TestCase(最核心的模块)

在一个项目中Testcase(测试用例)的代码,一般放在一个单独的目录(case)

1.是一个代码文件,在代码文件中来书写真正的用例代码
2.代码文件的名字必须按照标识符的规则来书写(可以将代码的作用在文件的开头使用注释说明)
步骤
1.导包(unittest)
2.自定义测试类
3.在测试类中书写测试方法
4.执行用例
"""代码的目的:学习TestCase(测试用例)模块的书写方法"""
# 1,导包
import unittest


# 2,自定义测试类,需要继承unittest模块中的 Testcase类即可
class TestDemo1(unittest.TestCase):
    # 3,书写测试方法,用例代码
    # 书写要求,测试方法必须以test_开头(本质是以test开头)
    def test_method1(self):
        print('测试方法1')

    def test_method2(self):
        print('测试方法2')

# 4,执行用例(方法)
# 4.1 将光标放在类名的后边运行,会执行类中的所有的测试方法
# #4.2将光标放在方法名的后边运行,只执行当前的方 法

2. TestSuite TestRunner

Testsuite(测试套件),用来管理组装(打包)多个TestCase(测试用例)的
TestRunner(测试执行,测试运行),用来执行TestSuite(测试套件)的

步骤
1.导包(unittestR
2.实例化(创建对象)套件对象
3.使用套件对象添加用例方法
4.实例化运行对象
5.使用运行对象去执行套件对象
"""学习TestSuite和 TestRunner的使用"""
# 1.导包(unittest)
import unittest

# 2。实例化(创建对象)套件对象,
from TestCase import TestDemo1, TestDemo2

suite = unittest.TestSuite()
# 3。使用套件对象添加用例方法
# 方式一,套件对象.addTest(测试类名('方法名'))
# 建议测试类名和方法名直接去复制,不要手写
# suite.addTest(TestDemo1('test_method1'))
# suite.addTest(TestDemo1('test_method2'))
# suite.addTest(TestDemo2('test_method1'))
# suite.addTest(TestDemo2('test_method2'))

# 方式二 将一个测试类中的所有方法进行添加
# 套件对象. addTest(unittest.makeSuite(测试类名))
# #缺点:makeSuite()不会提示
suite.addTest(unittest.makeSuite(TestDemo1))
suite.addTest(unittest.makeSuite(TestDemo2))

# 4.实例化运行对象
runner = unittest.TextTestRunner()
# 5.使用运行对象去执行套件对象
# 运行对象.run(套件对象)
runner.run(suite)

3,TestLoader (测试加载)

TestLoader(测试加载),作用和TestSuite 的作用是一样的,对TestSuite 功能的补充,用来组装测试用例的比如:如果Testcase 的代码文件有很多,(10 20,30 )-使用步骤
1.导包
2.实例化测试加载对象并添加用例--->得到的是suite对象
3.实例化运行对象
4.运行对象执行套件对象
# 在一个项目中Testcase(测试用例)的代码,一般放在一个单独的目录(case)

"""学习TestLoader的使用"""
# 1.导包(unittest)
import unittest

# 2,实例化加载对象并添加用例
# unittest.TestLoader( ).discover( '用例所在的路径','用例的代码文件名')
# 用例所在的路径,建议使用相对路径,用例的代码文件名可以使用*(任意多个任意字符)通配符
suite = unittest.TestLoade
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我了解了您的要求,下面是关于Python unittest使用教程: 1.引入unittest模块 在Python使用unittest时,首先需要引入unittest模块,示例如下: ```python import unittest ``` 2.测试用例的编写 在unittest中,每一个测试用例都需要是一个类,并且需要继承自unittest.TestCase。在该类中,需要编写一些测试方法,用于测试具体的功能。示例如下: ```python class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): self.assertTrue('FOO'.isupper()) self.assertFalse('foo'.isupper()) def test_split(self): s = 'hello world' self.assertEqual(s.split(), ['hello', 'world']) # 检查 s.split 的返回值是否为 ['hello', 'world'] with self.assertRaises(TypeError): s.split(2) ``` 在上述示例中,我们定义了一个名为TestStringMethods的类,并继承了unittest.TestCase。在该类中,我们定义了三个测试方法,分别用于测试字符串是否转化为大写格式、字符串是否全部为大写格式以及字符串分割成列表的功能。其中,使用了self.assertEqual()和self.assertTrue()方法来检查功能是否正确。 3.测试运行 编写完测试用例后,我们需要使用unittest模块的unittest.main()方法来运行测试,示例如下: ```python if __name__ == '__main__': unittest.main() ``` 在上述代码中,我们使用了__name__变量,该变量用于判断当前模块是否为主模块。如果当前模块为主模块,则执行unittest.main()方法来运行测试。 完整代码示例如下: ```python import unittest class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): self.assertTrue('FOO'.isupper()) self.assertFalse('foo'.isupper()) def test_split(self): s = 'hello world' self.assertEqual(s.split(), ['hello', 'world']) # 检查 s.split 的返回值是否为 ['hello', 'world'] with self.assertRaises(TypeError): s.split(2) if __name__ == '__main__': unittest.main() ``` 希望这个教程能够帮到您,如果您还有其他问题,可以继续向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值