unittest

第一次作业

梦想的初衷 提交于 2019-12-01 10:20:43
1、使用的编程语言,选择该语言的原因分析,编程经验(历史代码量等); 学员崔奥使用编程语言为Python,编程环境为pycharm。本科所学编程语言为C语言,但通过计算机二级之后便不再学习,截止到现在基本已经忘记如何用c语言编程。目前,Python语言应用程度较高,与市场衔接性较好,加之容易上手操作,故选择此编程语言。目前为编程经验为零的小白。通过一周自学,掌握部分小程序基本写法: #伙食随机分配# import randommenu = ['鸭血粉丝', '黄焖鸡米饭', '水煮肉片', '牛肉面', '盖浇饭', '火锅']print(random.choice(menu))#三角形判断# side1=float(input("请输入三角形的第一条边: "))side2=float(input("请输入三角形的第二条边: "))side3=float(input("请输入三角形的第三条边: ")) if (side1+side2>side3) and (side2+side3>side1) and (side3+side1>side2): print("可以构成三角形") if (side1**2+side2**2==side3**2) or (side2**2+side3**2==side1**2) or (side1**2+side3**2==side2**2):

Python unittest

自古美人都是妖i 提交于 2019-12-01 08:28:32
Python unittest unittest 是Python 自带的单元测试框架,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例运行前的初始化操作。 官方文档:https://docs.python.org/3/library/unittest.html#module-unittest 简介 unittest 中有一些类: TestCase 测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoader 用来加载 TestCase 到 TestSuite 中的 TestRunner 是来运行测试用例的, 测试的结果会保存到 TestResult 实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息 使用 unittest 要求单元测试类必须继承 unittest.TestCase,该类中的测试方法需要满足如下要求: 没有返回值 不应该有任何参数 应以test 开头 示例: import unittest class TestFunc(unittest.TestCase): def test_1(self): self.assertEqual(func1(1, 1), 2) def test_2(self): self.assertEqual(func1(1, 2), 3) def func1(a, b):

unittest2框架------执行原理

吃可爱长大的小学妹 提交于 2019-12-01 05:39:22
使用unittest2框架,做简单的技术实验,了解框架基本使用及执行原理 代码: #一个自动化测试框架,关于用例执行的实验 #导入包 import unittest2 #创建类,并继承代码库中的TestCase,表示当前类,是测试用例类 class UnittestDemo(unittest2.TestCase): #重写setUpClass()方法 @classmethod def setUpClass(cls): print('setUpClass方法') print('') def setUp(self): print('在测试用例开始前,要做的初始化条件') def test_login(self): print('以test开头的测试用例执行实验') self.func_aa() def func_aa(self): print('不以test开头的方法,是普通方法,只有被调用才会执行,放在test_login()里调用了!') def test_regi(self): print('每条测试用例执行前,需要执行一次setUp()、tearDown()方法') def tearDown(self): print('在测试用例结束后,要做的场景还原') print('') #重写tearDownClass方法 @classmethod def tearDownClass

细说unittest

a 夏天 提交于 2019-12-01 05:38:46
一、unittest模块官方文档: https://docs.python.org/3/library/unittest.html 二、一张图看懂unittest: 三、Unittest主要方法属性: 1.unittest.TestCase:TestCase类,所有测试用例继承的基本类:    class myfunTest(unittest.TestCase):     def setUp(self):     print('每个用例执行前都会调用setUp准备环境') 2.unittest.main():使用它可以方便的将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行它们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z.所以以A开头的测试用例方法会优先执行,以a开头会执行:    if __name=="__main__()":     unittest.main() 3.unittest.TestSuite():unittest框架的TestSuite()类是用来创建测试套件的:     tests=myfunTest("test_is_prime")     suite=unittest.TestSuite()   

unittest和pytest对比

[亡魂溺海] 提交于 2019-12-01 05:36:00
一、用例编写规则 1.unittest提供了test cases、test suites、test fixtures、test runner相关的类,让测试更加明确、方便、可控。使用unittest编写用例,必须遵守以下规则:   (1)测试文件必须先import unittest   (2)测试类必须继承unittest.TestCase   (3)测试方法必须以“test_”开头   (4)测试类必须要有unittest.main()方法  2.pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。使用pytest编写用例,必须遵守以下规则: (1)测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)   (2)测试方法必须以“test_”开头。   (3)测试类命名以"Test"开头。  总结: pytest可以执行unittest风格的测试用例,无须修改unittest用例的任何代码,有较好的兼容性。 pytest插件丰富,比如flask插件,可用于用例出错重跑;还有xdist插件,可用于设备并行执行。      二、用例前置和后置 1.unittest提供了setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass和tearDownClass,用例执行前

python 几种常用测试框架

会有一股神秘感。 提交于 2019-12-01 05:30:00
测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的; 每个测试单元必须是完全独立的,必须能单独运行。这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作。通常通过setUp()和setDown()方法处理; 编写执行快速的测试代码。在某些情况下,测试需要加载复杂的数据结构,而且每次执行的时候都要重新加载,这个时候测试执行会很慢。因此,在这种情况下,可以将这种测试放置一个后台的任务中。 采用测试工具并且学着怎么使用它。 在编写代码前执行完整的测试,而且在编写代码后再重新执行一次。这样能保证你后来编写的代码不会破坏任何事情; 在提交代码前执行完整的测试; 如果在开发期间被打断了工作,写一个打断的单元测试,关于你下一步将要开发的。当你回来工作时,你能知道上一步开发到的指针; 单元测试函数使用长的而且具有描述性的名字。在正式执行代码中,可能使用square()或sqr()取名,但是在测试函数中,你必须取像test_square_of_number_2()、test_square_negativer_number()这些名字,这些名字描述更加清楚; 测试代码必须具有可读性; 单元测试对新进的开发人员来说是工作指南。 二、常见的测试框架 2.1 Unittest unittest是Python内置的标准类库。它的API跟Java的JUnit、

Unittest

为君一笑 提交于 2019-12-01 04:59:08
单个测试用例 # -*- coding: utf-8 -*- import unittest from htmltestrunner import HTMLTestRunner # 单个用例测试 class MyTestCase(unittest.TestCase): # 启动 def setUp(self): print '预测环境' def testcase(self): print '测试用例' self.assertEqual(1,1,'断言失败') def tearDown(self): print '测试销毁' if __name__ == '__main__': unittest.main() 多个测试用例 # -*- coding: utf-8 -*- import unittest from htmltestrunner import HTMLTestRunner # 多个用例测试 class TestCase1(unittest.TestCase): def testcase1(self): # 在这个地方做断言,比如说是调用一个接口,获得一个参数后和某个值做断言即可 self.assertEqual(1,2,'error!!!') print 'this is testcase1' def testcase2(self): print 'this is

Unittest框架的从零到壹(二)

隐身守侯 提交于 2019-12-01 02:38:00
四大重要概念 在unittest文档中有四个重要的概念:Test Case、Test Suite、Test Runner和Test Fixture。只有理解了这几个概念,才能理解单元测试的基本特征。 1.Test Case Test Case是最小的测试单元,用于检查特定输入集合的特定返回值。unittest提供了TestCase基类,我们创建的测试类需要继承该基类,它可以用来创建新的测试用例。 2.Test Suite测试套件是测试用例、测试套件或两者的集合,用于组装一组要运行的测试。unittest提供了TestSuite类来创建测试套件。 3.Test Runner Test Runner是一个组件,用于协调测试的执行并向用户提供结果。Test Runner可以使用图形界面、文本界面或返回特殊值来展示执行测试的结果。unittest提供了TextTestRunner类运行测试用例,为了生成HTML格式的测试报告,后面会选择使用HTMLTestRunner运行类。 4.Test Fixture Test Fixture代表执行一个或多个测试所需的环境准备,以及关联的清理动作。例如,创建临时或代理数据库、目录,或启动服务器进程。unittest中提供了setUp()/tearDown()、setUpClass()/tearDownClass()等方法来完成这些操作。

python 自动化测试框架unittest与pytest的区别

天大地大妈咪最大 提交于 2019-11-30 18:38:25
前言: 有使用过unittest单元测试框架,再使用pytest单元测试框架,就可以明显感觉到pytest比unittest真的简洁、方便很多。 unittest与pytest的区别: 主要从用例编写规则、用例的前置和后置、参数化、断言、用例执行、失败重运行和报告这几个方面比较unittest和pytest的区别 来源: https://www.cnblogs.com/cuitang/p/11635103.html

Python单元测试

我是研究僧i 提交于 2019-11-30 16:04:22
是单元测试 程序开发过程中,写代码是为了实现需求。当我们的代码通过了编译,只是说明它的语法正确,功能能否实现则不能保证。 因此,当我们的某些功能代码完成后,为了检验其是否满足程序的需求。可以通过编写测试代码,模拟程序运行的过程,检验功能代码是否符合预期。 单元测试就是开发者编写一小段代码,检验目标代码的功能是否符合预期。通常情况下,单元测试主要面向一些功能单一的模块进行。 举个例子:一部手机有许多零部件组成,在正式组装一部手机前,手机内部的各个零部件,CPU、内存、电池、摄像头等,都要进行测试,这就是单元测试。 在Web开发过程中,单元测试实际上就是一些“断言”(assert)代码。 断言就是判断一个函数或对象的一个方法所产生的结果是否符合你期望的那个结果。 python中assert断言是声明布尔值为真的判定,如果表达式为假会发生异常。单元测试中,一般使用assert来断言结果。 常见的断言方法 assertEqual 如果两个值相等,则pass assertNotEqual 如果两个值不相等,则pass assertTrue 判断bool值为True,则pass assertFalse 判断bool值为False,则pass assertIsNone 不存在,则pass assertIsNotNone 存在,则pass 如何测试 首先,定义一个类,继承自unittest