unittest

Unittest - Python 使用总结

早过忘川 提交于 2019-11-28 12:50:26
Unittest - Python 使用总结 批量执行 一、UnitTest TestSuite 控制用例执行的顺序 UnitTest 框架默认根据 ASCII 码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z 如果要让某个测试用例先执行,不能使用默认的 main() 方法,需要通过 TestSuite 类的 addTest() 方法按照一定的顺序来加载。 示例 : class TestCase01(unittest.TestCase): def setUp(self): print("case开始执行") def tearDown(self): print("case结束执行") @classmethod def setUpClass(cls): print("case类开始执行") @classmethod def tearDownClass(cls): pass @unittest.skip("这个case不像执行") def test_07(self): print("执行case07") flag = "adfadfadfadfadsfaqeewr" s = "fads" self.assertIn(s, flag, msg="不包含") @unittest.skip("这个case不像执行") def test_01(self): TestCase01

Python unittest模块的使用笔记:对mock.patch()的被mock函数的说明

℡╲_俬逩灬. 提交于 2019-11-28 10:32:35
现在假设需要对get_app模块内的create_app函数做单元测试,同时create_app函数调用了另一模块utils的load_yaml函数。由于模块utils的load_yaml函数可能处于开发阶段或是需要通过网络传输数据,从而导致测试的不便。这时就需要对load_yaml做一个mock.patch,即伪造一个load_yaml的返回值来完成对其调用者的单元测试。 这里的关键在于mock.patch()中load_yaml的路径写法:从调用者(create_app)路径引入load_yaml而不是直接从load_yaml自身所在的模块路径引入。 演示文件共3个,均位于同一目录下。 i) test_get_app.py from unittest import TestCase, mock import unittest from get_app import create_app test_config = 'HHH' class GetappTestCase(TestCase): @mock.patch('get_app.load_yaml') # 注意这里的mock路径 def test_get_app(self, mock_load): mock_load.return_value = test_config self.assertEqual(create_app(

5.分离测试固件

杀马特。学长 韩版系。学妹 提交于 2019-11-28 06:38:12
我们把测试固件分离到init.py,类名称为InitTest,代码如下: import unittest from selenium import webdriver class InitTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.get("http://www.baidu.com") self.driver.implicitly_wait(30) def tearDown(self): self.driver.quit() if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromModule('test.py') unittest.TextTestRunner(verbosity=2).run(suite) 测试类继承了InitTest,继承后,在测试类中直接编写要执行的测试用例,代码如下:、 import unittest from init import InitTest class BaiduTest(InitTest): def test_baidu_news(self): self.driver

4.构造测试套件

这一生的挚爱 提交于 2019-11-28 06:35:21
1.按照顺序执行 代码如下: import unittest from selenium import webdriver class BaiduTest(unittest.TestCase): def setUp(self): self.driver=webdriver.Chrome() self.driver.maximize_window() self.driver.implicitly_wait(30) self.driver.get("http://www.baidu.com") def tearDown(self): self.driver.quit() def test_baidu_news(self): "验证百度首点击新闻后的跳转" self.driver.find_element_by_link_text("新闻").click() url = self.driver.current_url self.assertEqual(url,'http://news.baidu.com/') def test_baidu_map(self): "验证百度首页点击地图后的跳转" self.driver.find_element_by_link_text("地图").click() self.driver.get("http://www.baidu.com") if _

3- 测试执行

让人想犯罪 __ 提交于 2019-11-28 06:23:49
下面我们看一个实例: import unittest from selenium import webdriver class Baidu(unittest.TestCase): def setUp(self): self.driver=webdriver.Chrome() self.driver.maximize_window() self.driver.implicitly_wait(30) self.driver.get("http://www.baidu.com") def tearDown(self): self.driver.quit() def test_baidu_title(self): "验证百度首页的title" self.assertEqual(self.driver.title,'百度一下,你就知道') def test_baidu_url(self): "验证百度首页的url" self.assertEqual(self.driver.current_url,"https://www.taobao.com") if __name__ == '__main__': unittest.main() 打印结果为: D:\Python3\python.exe D:/code/wuya/test.py .F ============================

Python接口自动化实战(第二阶段)- unittest框架

杀马特。学长 韩版系。学妹 提交于 2019-11-28 02:57:19
转载: https://www.cnblogs.com/testjiali/p/10415397.html 1.unitttest简介 为什么要使用unittest? 前面我们已经写代码实现了注册接口的处理调用,但是一个接口往往需要多条测试用例才能完整的覆盖到每一种情况,针对于单接口多条测试用例需要执行的情况,我们该如何处理呢? 在unittest的测试类中定义多个测试方法来完成测试,这可能是大家最先想到的一个解决方法,当然也是能够达到目的的,以下面的注册接口为例,我们基于此思路来编码实现接口的完整测试。 unittest特点 python自带的单元测试框架,无需安装 用例执行互不干扰 提供不同范围的setUp(测试准备)和tearDown(测试清理)方法 提供丰富的断言方法 可以通过discover批量执行所有模块的用例 可以通过TestSuite(测试集)灵活的组织用例 unittest几大组成部分 TestCase: 用例对象,编写测试用例时要继承该类,以具有TestCase的属性和方法 TestSuite: 测试集或测试套件,测试用例的集合,用来组织用例,支持嵌套 TestLoader: 用例加载器,用于向TestSuite中添加用例 TextTestRunner: 用例执行器(输出文本结果),一般以TestSuite为单位执行用例 TestResult: 测试结果 2

unittest

*爱你&永不变心* 提交于 2019-11-27 21:53:11
import unittest,HTMLTestRunner class My(unittest.TestCase): def test_a(self): """这是用例备注:第一条用例""" self.assertEqual(1,1) #对比两个值是否相等 def test_b(self): """第一条用例""" self.assertEqual(1,2) if __name__ == '__main__': suite=unittest.TestSuite() # suite.addTest(unittest.makeSuite(My)) #运行类下所有的用例 suite.addTest(My('test_a')) #单独运行某一个用例 fw=open('1.html','wb') runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='h',description='描述') runner.run(suite) 2.setUp,tearDown ,setUpclass ,tearDownclass import unittest class My(unittest.TestCase): @classmethod def setUpClass(cls): print('进入对象先运行我') @classmethod def

2- 测试固件

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 19:44:37
测试固件分为两种情况,一种是每执行一个用例的时候,测试固件都会被执行到。一种是不管有多少测试用例,测试固件只执行一次。 1.测试固件每次均执行 unittest单元测试框架提供了setUp和teardown的测试固件。执行方式如下: import unittest class BaiduTest(unittest.TestCase): def setUp(self): print('start') def tearDown(self): print('end') def test_baidu_so(self): print('测试用例执行') if __name__ == '__main__': unittest.main(verbosity=2) 来源: https://www.cnblogs.com/Chamberlain/p/11374712.html

Python项目中的单元测试

做~自己de王妃 提交于 2019-11-27 13:12:59
引入 单元测试负责对最小的软件设计单元(模块)进行验证, unittest 是Python自带的单元测试框架。 单元测试与功能测试都是日常开发中必不可少的部分,本文演示了Python中 unittest 单元测试框架的基本使用。 一个简单的测试例子 定义一个类,简单的实现 add 、 sub 两个方法,并对其进行单元测试。 待测试的 m1.py 文件内容如下: class MyClass(object): """just a test case""" def __init__(self, x, y): self.x = int(x) self.y = int(y) def add(self): return self.x + self.y def sub(self): return self.x - self.y 在与 m1.py 同级的目录下创建 test.py 测试文件,使用 unittest 单元测试框架对A类的方法进行测试。代码内容如下: import unittest from m1 import MyClass class MyClassTest(unittest.TestCase): def setUp(self): self.calc = MyClass(7, 5) def tearDown(self): pass def test_add(self): ret =

python之ddt模式随记json

我与影子孤独终老i 提交于 2019-11-27 12:50:37
ddt数据驱动模式还可以使用json文件来作为数据驱动,如下 import ddt import unittest ## 使用ddt的json数据来驱动 @ddt.ddt class Test(unittest.TestCase): def setUp(self): print('start') ## 使用json数据驱动 @ddt.file_data('test.json') def test_a(self,data): print(data) if __name__ == '__main__': unittest.main()   结果如下: 没错,json文件里面的内容为 { "a": 1, "b": "b", "c": [1,2]}测试函数执行了3次,每次都是打印的value 来源: https://www.cnblogs.com/dflblog/p/11363688.html