首页 > 其他分享 >nittest单元测试框架—加载测试用例的3种方法以及测试报告存储管理

nittest单元测试框架—加载测试用例的3种方法以及测试报告存储管理

时间:2023-10-12 11:02:52浏览次数:67  
标签:存储管理 测试报告 self 单元测试 test report suite unittest DIR

 

项目结构

 

测试用例

import unittest


class LoginTestCase(unittest.TestCase):

    def test_login_success(self):
        self.assertEqual({'code': 200, 'msg': '登录成功'}, self.login('kobe', '666'))

    def test_login_fail(self):
        self.assertEqual({'code': 201, 'msg': '账号或者密码不正确'}, self.login('kobe', '888'))

    def test_not_username(self):
        self.assertEqual({'code': 201, 'msg': '账号不能为空'}, self.login('', '666'))

    def test_not_password(self):
        self.assertEqual({'code': 201, 'msg': '密码不能为空'}, self.login('kobe', ''))

    def test_not_username_password(self):
        self.assertEqual({'code': 201, 'msg': '账号和密码不能为空'}, self.login('', ''))

    def login(self, username, password):
        if username == 'kobe' and password == '666':
            return {'code': 200, 'msg': '登录成功'}

        if username == 'kobe' and username != '' and password != '666' and password != '':
            return {'code': 201, 'msg': '账号或者密码不正确'}

        if username == 'kobe' and password == '':
            return {'code': 201, 'msg': '密码不能为空'}

        if username == '' and password == '666':
            return {'code': 201, 'msg': '账号不能为空'}

        if username == '' and password == '':
            return {'code': 201, 'msg': '账号和密码不能为空'}

方法1:从类中加载所有的case

suite.addTest(loader.loadTestsFromTestCase(LoginTestCase))

from test_unittest import LoginTestCase


#创建测试套件对象
suite=unittest.TestSuite()
#创建加载器
loader=unittest.TestLoader()
#将测试用例加载到测试套件种
suite.addTest(loader.loadTestsFromTestCase(LoginTestCase))

#运行测试用例
#创建报告对象
br = BeautifulReport(suite)
test_name = '测试报告1.html'

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)

REPORT_DIR = os.path.join(BASE_DIR, 'report')
print(REPORT_DIR)

br.report(description='测试报告', filename=test_name, report_dir=REPORT_DIR)

 

方法2:从模块中加载所有的测试用例

suite.addTest(loader.loadTestsFromModule(test_unittest))

import test_unittest

# todo 创建测试套件对象
suite = unittest.TestSuite()
# todo 创建加载器
loader = unittest.TestLoader()
# todo 将测试用例加载到测试套件中
suite.addTest(loader.loadTestsFromModule(test_unittest))
# todo 运行测试用例
# todo 创建报告对象
br = BeautifulReport(suite)
test_name = '测试报告.html'

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)

REPORT_DIR = os.path.join(BASE_DIR, 'report')
print(REPORT_DIR)


br.report(description='测试报告', filename=test_name, report_dir=REPORT_DIR)

 

方法3:从文件夹中加载所有的测试用例

suite.addTest(loader.discover(r'D:\second_hand_car\unittest_work'))

#创建suite套件对象
suite=unittest.TestSuite()
#创建加载器
loader=unittest.TestLoader()
#将测试用例加载到测试套件中
suite.addTest(loader.discover(r'D:\second_hand_car\unittest_work'))
#创建报告对象
br=BeautifulReport(suite)
test_name = '测试报告2.html'

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)

REPORT_DIR = os.path.join(BASE_DIR, 'report')
print(REPORT_DIR)
br.report(description='测试报告', filename=test_name, report_dir=REPORT_DIR)

 

测试报告

 

 

***关于报告存储

BASE_DIR=os.path.dirname(__file__):当前项目的根路径
BASE_DIR1=os.path.dirname(os.path.dirname(__file__)):当前项目的根路径的上一级目录
REPORT_DIR=os.path.join(BASE_DIR,'report'):项目目录下创建report包,用于存放测试报告,将report和项目根路径进行拼接,得到完整的包路径

 

 

项目结构

 

如果根目录和所拼接的包不存在,会自动生成所拼接的包

例如:当前report_dir目录不存在,用根目录和report_dir进行拼接,会生成report_dir包

REPORT_DIR = os.path.join(BASE_DIR, 'report_dir')  
print(REPORT_DIR)

 

标签:存储管理,测试报告,self,单元测试,test,report,suite,unittest,DIR
From: https://www.cnblogs.com/lzqhuazi/p/17758985.html

相关文章

  • 使用GoogleTest框架进行cpp代码的基本单元测试
    title:aliases:tags:-cpp/单元测试-cmake-工程技术category:-方法stars:url:creation-time:2023-10-1119:02modification-time:这里主要介绍从0开始实现基本的单元测试功能。构建首先从googletest代码仓下载源码。网上很多指导包括官方的指......
  • NetCore学习笔记:单元测试和集成测试
    前言#我在使用AspNetCore的这段时间内,看了很多开源项目和博客,发现各种.Net体系的新技术很多人都有关注和使用,但却很少有人关注测试。测试是软件生命周期中的一个非常重要的阶段,对于保证软件的可靠性具有极其重要的意义。在应用程序的开发过程中,为了确保它的功能与预期一致,......
  • 保护模式下的存储管理
    分段段描述符32位模式下,\(2^{32}bits=4GB\),起始地址用\(32bits\)表示,偏移用\(20bits\)表示,一页大小是\(4KB\),\(2^{20}\times2^{12}=2^{32}\),表示内存空间的某个位置最少用\(52bits\),实际上用\(64bits\),段基地址32位+限长20位+访问权限8位+属性4位。P:存在位:=1表示装入内存,=0......
  • 卷发棒上架亚马逊美国销售需要做什么认证?UL859测试报告
    卷发棒上架亚马逊美国销售需要做什么认证?UL859测试报告卷发棒是一种美发DIY工具,目前美发沙龙和发廊的的美发师都会使用一套卷发棒工具。卷发棒可以造出各种卷发。如:大波浪卷发、下垂自然卷发、垂至肩头卷发、碎卷、麦穗烫、内翻式卷发、外翻式卷发。目前很多家庭会自己备有这样的产......
  • 亚马逊筋膜枪UL1647测试报告申请
    筋膜枪,又称深层肌筋膜冲击仪,是一种通过高频冲击放松身体的软组织的软组织康复工具。[1]筋膜枪可理解为DMS(电动深层肌肉刺激器)的民用版本。使用时振动频率会发生变化,其基本功能与DMS相似。[2]筋膜枪的使用必须注意方法和方法。同时,筋膜枪的首次使用需要在专业人士的指导下使用。最好......
  • 第三方软件检测机构做验收测试靠谱吗?软件测试报告收费标准
    ​验收测试报告的费用一、第三方软件检测机构做验收测试靠谱吗?具备CMA或者CNAS资质的第三方检测机构就是靠谱的测试机构,但还是有一些项目做下来多多少少有一些问题,这个需要在选定机构之前多一点了解和沟通,从机构的各种流程要求,和人员交流是否顺畅来决定。二、软件测试报告收......
  • 北上广深科技项目验收测试报告标准是什么?
    ​科技项目验收测试一、科技项目验收是什么?科技项目验收是指以科学研究和技术开发为内容而单独立项的项目,其目的在于解决经济和社会发展中出现的科学技术问题。不同的科技项目,根据其性质、实施范围、运作特点有不同的分类,项目的主管单位在项目组申请结题以后组织验收的步骤。......
  • 一文搞定单元测试核心概念
    基础概念单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类。单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被测试的软件如何完成功能和完成什么样的功能。我们熟知的Junit、TestNG、unittest、pytest就......
  • 软件第三方测试机构能提供哪些测试服务?上海软件测试报告收费标准
    软件测试报告一、软件第三方测试机构能提供哪些测试服务?专业CMA/CNAS第三方检测机构出具以下测试报告:1、鉴定测试报告(用于政府项目申报、高新认证、项目结题和创新产品认定)2、验收测试报告(用于各类软件和硬件系统相结合的综合性集成项目的第三方验收测试,如政府、事业单位、......
  • 单元测试框架-pytest
    1.简介Pytest是基于python语言的单元测试框架,也是一个命令行工具,具有以下特点:入门简单,易上手支持大量的第三方插件,如:失败重试,控制用例执行顺序等基于配置文件可以简单的集成CI(持续集成)工具中 2.快速入门安装pipinstallpytest  基本格式defadd(x,y):......