当增加被测功能和相应的测试用例之后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单元测试用例的更多相关文章

  1. 【Python + Selenium】之unittest测试用例满足条件,进行跳过测试Skip

    直接上代码: __author__ = 'zc' import unittest class demoSkipTest(unittest.TestCase): a = 70 b = 50 print( ...

  2. Python+selenium之带unittest的脚本分析

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.c ...

  3. Python&Selenium 数据驱动【unittest+ddt+json】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用json文件作为数据文件作为测试输入,最后生成html测试报告 二.json文件 [ ...

  4. Python+Selenium 自动化实现实例-单元测试报告

    代码如下: # -*- coding: utf-8 -*- from selenium import webdriver import unittest,time import HTMLTestRun ...

  5. Python&Selenium 数据驱动【unittest+ddt+Excel】

    一.摘要 一般情况下我们为了更好的管理测试数据会选择将测试数据存储在Excel文件当中去,本节内容将展示给读者将测试数据存储在Excel文档中的案例. 二.创建存储测试数据的Excel 创建一个Exc ...

  6. Python&Selenium 数据驱动【unittest+ddt+json+HTMLTestRunner】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用json文件作为数据文件作为测试输入,最后借助著名的HTMLTestRunner.p ...

  7. Python&Selenium 数据驱动【unittest+ddt+mysql】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用mysql数据库为数据源作为测试输入 二.SQL脚本 # encoding crea ...

  8. Python&Selenium 数据驱动【unittest+ddt】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt实现数据驱动 二.测试代码 # encoding = utf-8 ""& ...

  9. Python&Selenium 数据驱动【unittest+ddt+xml】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用xml文件作为数据文件作为测试输入 二.xml文件 <?xml version ...

随机推荐

  1. 一个.NET通用JSON解析/构建类的实…

    一个.NET通用JSON解析/构建类的实现(c#) 在.NET Framework 3.5中已经提供了一个JSON对象的序列化工具,但是他是强类型的,必须先按JSON对象的格式定义一个类型,并将类型加 ...

  2. SLAM细碎内容积累_来自各种技术交流群_持续更新

    imu标定 工具包:imu_utils,   imu_tk,   kalibr 用kalibr做标定,相机和imu的采样频率要求:相机20,imu100.kalibr也可以做鱼眼相机+imu的联合标定 ...

  3. VIM显示utf-8乱码

    找到vim的根目录下的vimrc文件打开,加入下面三行,保存.重开vim即可. set encoding=utf-8 set langmenu=zh_CN.UTF-8 language message ...

  4. CodeForces 484B Maximum Value (数学,其实我也不知道咋分类)

    B. Maximum Value time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  5. FZU 2057 家谱(dfs)

    Problem 2057 家谱 Accept: 129    Submit: 356Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem ...

  6. CodeForces - 828C String Reconstruction 并查集(next跳)

    String Reconstruction Ivan had string s consisting of small English letters. However, his friend Jul ...

  7. MS SQL Server的COALESCE函数

    MS SQL Server的COALESCE函数是从一系列表达式中返回第一个NOT NULL的值. 检查[B],[Q],[S],[T],[U]的值: 检查顺序[B]->[Q]->[S]-& ...

  8. IOC模式及Unity框架文章收藏

    1.IoC模式:http://www.cnblogs.com/qqlin/archive/2012/10/09/2707075.html 通过Unity实现IOC容器. 2.深入理解DIP.IoC.D ...

  9. include跟include_once 以及跟require的区别

    include如果引入两个文件,都有一个相同的函数名,那么就会发生重定义的错误.使用include_once可以避免此错误,一般都_once用的比较多.应该根据实际情况需求include和_once的 ...

  10. Weekly Contest 113

    949. Largest Time for Given Digits (string::compare) Given an array of 4 digits, return the largest ...