2022-02-27

Unittest重要组成

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试

unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner

TestFixture:于一个测试环境的准备和销毁还原。

主要方法:

setUp():准备环境,执行每个测试用例的前置条件;

tearDown():环境还原,执行每个测试用例的后置条件;

setUpClass():必须使用@classmethod装饰器,所有case执行的前置条件,只运行一次;

tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次;

TestCase:测试用例

测试用例命名规则:继承自unittest.TestCase的类中,测试方法的名称要以test开头。

且只会执行以test开头定义的方法(测试方法),

测试用例执行的顺序会按照方法名的ASCII值排序。

TestSuite:

TextRunner

断言:验证预期结果和实际结果(第一个用的最多)

assertEqual(a,b):断言a和b是否相等,相等则测试用例通过。

assertNotEqual(a,b):断言a和b是否相等,不相等则测试用例通过。

assertTrue(x):断言x是否True,是True则测试用例通过。

assertFalse(x):断言x是否False,是False则测试用例通过。

assertIs(a,b):断言a是否是b,是则测试用例通过。

assertNotIs(a,b):断言a是否是b,不是则测试用例通过。

assertIsNone(x):断言x是否None,是None则测试用例通过。

assertIsNotNone(x):断言x是否None,不是None则测试用例通过。

assertIn(a,b):断言a是否在b中,在b中则测试用例通过。

assertNotIn(a,b):断言a是否在b中,不在b中则测试用例通过。

assertIsInstance(a,b):断言a是是b的一个实例,是则测试用例通过。

assertNotIsInstance(a,b):断言a是是b的一个实例,不是则测试用例通过。

单元测试之pytest:

Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头的类和方法,比unittest更加严谨

Allure常用的几个特性:

@allure.feature # 用于描述被测试产品需求

@allure.story # 用于描述feature的用户场景,即测试需求

with allure.step(): # 用于描述测试步骤,将会输出到报告中

allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据,截图等

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容