Python + selenium之组织unittest单元测试用例
当增加被测功能和相应的测试用例之后unittest单元测试框架如何扩展和组织新增的测试用例的。
# coding =utf-8
# calculator class Count ():
def __init__(self, a, b):
self.a = int (a)
self.b = int (b) def add(self):
return self.a + self.b def sub(self):
return self.a - self.b
import unittest
from calculator import Count class TestAdd (unittest.TestCase):
def setUp(self):
print("加法测试开始") def test_add(self):
j = Count(2, 3)
self.assertEqual (j.add (), 4, msg='加法不行等') def test_add2(self):
j = Count(2, 4)
self.assertEqual (j.add (), 5, msg='加法不行等') def tearDown(self):
print("加法测试结束") class TestSub (unittest.TestCase):
def setup(self):
print("减法测试开始") def test_sub(self):
j = Count(10, 3)
self.assertEqual (j.sub (), 18, msg='键法不行等') def test_sub2(self):
j = Count(10, 2)
self.assertEqual (j.sub (), 18, msg='键法不行等') def tearDown(self):
print("减法测试结束") if __name__ == '__main__':
suite = unittest.TestSuite ()
suite.addTest (TestAdd ('test_add'))
suite.addTest (TestAdd ('test_add2'))
suite.addTest (TestSub ('test_sub'))
suite.addTest (TestSub ('test_sub2'))
run = unittest.TextTestRunner ()
run.run (suite)
运行的结果如下:

上面中创建了TestAdd()和TestSub()两个类,分别测试calculator.py文件中的add()和sub()两个功能。通过TestSuite类的addTest()方法把不同测试类中的测试方法组装到测试套件中。
通过。
从测试结果可以看出,setUp()和tearDown()方法分别作用于每个测试用例的开始和结束。如果每个类中的setUp和tearDown()所做的事情是一样的,就可以将其封装再一个测试类中。
import unittest
from calculator import Count class MyTest (unittest.TestCase):
def setUp(self):
print("test case start") def tearDown(self):
print("test case end") class TestAdd (MyTest):
def test_add(self):
j = Count (2, 3)
self.assertEqual (j.add (), 5, msg='加法不行等') def test_add2(self):
j = Count (2, 4)
self.assertEqual (j.add (), 6, msg='加法不行等') class TestSub (MyTest):
def test_sub(self):
j = Count (10, 3)
self.assertEqual (j.sub (), 7, msg='键法不行等') def test_sub2(self):
j = Count (10, 2)
self.assertEqual (j.sub (), 8, msg='键法不行等') if __name__ == '__main__':
suite = unittest.TestSuite ()
suite.addTest (TestAdd ('test_add'))
suite.addTest (TestAdd ('test_add2'))
suite.addTest (TestSub ('test_sub'))
suite.addTest (TestSub ('test_sub2'))
run = unittest.TextTestRunner ()
run.run (suite)
# unittest.main()
创建MyTest()类的好处显而易见,对于测试类和测试方法来说,应将注意力放在具体用例的编写商,无需关心SetUp()和TearDown()所做的事情。前提条件是SetUp()和TearDown()所做的事情是每个用例都需要的。
Python + selenium之组织unittest单元测试用例的更多相关文章
- 【Python + Selenium】之unittest测试用例满足条件,进行跳过测试Skip
直接上代码: __author__ = 'zc' import unittest class demoSkipTest(unittest.TestCase): a = 70 b = 50 print( ...
- Python+selenium之带unittest的脚本分析
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.c ...
- Python&Selenium 数据驱动【unittest+ddt+json】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用json文件作为数据文件作为测试输入,最后生成html测试报告 二.json文件 [ ...
- Python+Selenium 自动化实现实例-单元测试报告
代码如下: # -*- coding: utf-8 -*- from selenium import webdriver import unittest,time import HTMLTestRun ...
- Python&Selenium 数据驱动【unittest+ddt+Excel】
一.摘要 一般情况下我们为了更好的管理测试数据会选择将测试数据存储在Excel文件当中去,本节内容将展示给读者将测试数据存储在Excel文档中的案例. 二.创建存储测试数据的Excel 创建一个Exc ...
- Python&Selenium 数据驱动【unittest+ddt+json+HTMLTestRunner】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用json文件作为数据文件作为测试输入,最后借助著名的HTMLTestRunner.p ...
- Python&Selenium 数据驱动【unittest+ddt+mysql】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用mysql数据库为数据源作为测试输入 二.SQL脚本 # encoding crea ...
- Python&Selenium 数据驱动【unittest+ddt】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt实现数据驱动 二.测试代码 # encoding = utf-8 ""& ...
- Python&Selenium 数据驱动【unittest+ddt+xml】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用xml文件作为数据文件作为测试输入 二.xml文件 <?xml version ...
随机推荐
- POJ-3069
Saruman's Army Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10994 Accepted: 5555 D ...
- Javascript实现页面左边的菜单选中项高亮显示
在项目开发过程中,遇到一个问题 在一个模板页面中,Layout.cshtml,页面左边放了一个菜单项menu,每一项都是一个链接到一个新的页面.但所有页面都是用这个模板Layout.cshtml.需要 ...
- 1.4 DVWA亲测文件上传漏洞
Low 先看看源代码: <?php if(isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $tar ...
- 2014年第五届蓝桥杯国赛试题(JavaA组)
1.结果填空 (满分15分)2.结果填空 (满分45分)3.代码填空 (满分30分)4.程序设计(满分30分)5.程序设计(满分80分)6.程序设计(满分100分) 1.标题:海盗分金币 有5个海盗, ...
- sqlserver2012——使用子查询
1 select A.成绩,A.分数,B.姓名 FROM 成绩信息 A, 学生信息 B WHERE A.学生编号=B.学号 AND A.课程编号=‘’ AND A.考试编号=‘’ AND A.分数 & ...
- 洛谷 P5162 WD与积木【多项式求逆】
设f[i]为i个积木能堆出来的种类,g[i]为i个积木能堆出来的种类和 \[ f[n]=\sum_{i=1}^{n}C_{n}^{i}g[n-i] \] \[ g[n]=\sum_{i=1}^{n}C ...
- loj #6079. 「2017 山东一轮集训 Day7」养猫【最大费用最大流】
首先假设全睡觉,然后用费用流考虑平衡要求建立网络流 把1~n的点看作是i-k+1~k这一段的和,连接(i,i+k,1,e[i]-s[i]),表示把i改成吃饭,能对i~i+k-1这一段的点产生影响:然后 ...
- [NOIP2014]子矩阵
1812. [NOIP2014]子矩阵 http://www.cogs.pro/cogs/problem/problem.php?pid=1812 ★★★ 输入文件:submatrix.in ...
- [Xcode 实际操作]七、文件与数据-(10)NSkeyedArchiver存储和解析数据,Swift对象的归档和恢复归档
目录:[Swift]Xcode实际操作 本文将演示如何使用归档的方法,对模型对象进行持久化工作. 在项目名称上点击鼠标右键,弹出右键菜单,选择[New File]新建文件命令, 在弹出的模板选项窗口中 ...
- 18.存储过程--SQL
好文要顶: sQL存储过程的优缺点 SQL Server 存储过程 一.创建.使用存储过程 Oracle版本: CREATE PROCEDURE MailingListCount ( ListCoun ...