unittest对单个测试类的多种测试执行方法总结
基于unittest测试框架编写的测试脚本,一般单个测试类下会有多个测试方法,unittest也提供多种测试执行方式,下面就不同方式或者需求一一实操并说明:
一、使用unittest下main()方法的运行所有测试方法,实例代码如下:
'''单个测试类的多种运行方式'''
# -*- coding:utf-8 -*-
import unittest
from selenium import webdriver
from time import sleep
import HTMLTestRunner class BaiduSearch(unittest.TestCase):
@classmethod
def setUpClass(cls):
#create a new browser session
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(30)
cls.driver.maximize_window() cls.driver.get("https://www.baidu.com") def test_search_selenium(self):
#get the search textbox and enter search keyword
search_textbox = self.driver.find_element_by_id('kw')
search_textbox.clear()
search_textbox.send_keys("selenium")
#get the and seacrh button and click
seacrh_button = self.driver.find_element_by_id('su')
seacrh_button.click() #add assert
sleep(2)
tag = self.driver.find_element_by_link_text("Selenium Remote Control").text
self.assertIn("Selenium",tag) def test_search_python(self):
search_textbox = self.driver.find_element_by_id('kw')
search_textbox.clear()
search_textbox.send_keys("python")
seacrh_button = self.driver.find_element_by_id('su')
seacrh_button.click() sleep(3)
tag = self.driver.find_element_by_link_text("PyPI").text
self.assertEqual("PyPI",tag) @classmethod
def tearDownClass(cls):
#close the browser window
cls.driver.quit() #使用unittest下main()方法的运行所有测试方法
if __name__ == '__main__':
unittest.main(verbosity=2) #传递verbosity参数查看更详细的测试结果展示
运行结果如下 :

二、使用TestLoader和TextTestRunner来创建和运行测试套件,代码如下:
...
suite = unittest.TestLoader().loadTestsFromTestCase(BaiduSearch)
unittest.TextTestRunner(verbosity=2).run(suite)
运行结果同上。
三、使用TestSuite和TextTestRunner来创建和运行测试套件,代码如下:
...
suite = unittest.TestSuite()
suite.addTest(BaiduSearch("test_search_python")) #使用addTest()添加测试类下面的单个测试方法
suite.addTest(BaiduSearch("test_search_selenium"))
unittest.TextTestRunner(verbosity=2).run(suite)
运行结果同上。
注意这个方法可以灵活只运行测试类下的任何一个或者几个测试方法,只需要addTest相应测试方法即可,或者在添加完所有方法后注释掉其中不打算测试的方法也可以。
四、使用HTMLTestRunner和TestLoader来创建和运行测试套件并生成漂亮的HTML格式的测试报告,代码如下:
...
suite = unittest.TestLoader().loadTestsFromTestCase(BaiduSearch)
#open the report file
report_file = open('./' + ' BaiduSearch_test.html', 'wb')
#configure HTMLTestRunner options and run the suite
HTMLTestRunner.HTMLTestRunner(stream = report_file,
title = "baidu",
description = "Baidu Test",
verbosity=2).run(suite)
运行结果同上且生成一个HTML格式的测试报告在当前目录下。
unittest对单个测试类的多种测试执行方法总结的更多相关文章
- 编写测试类,了解ArrayList的方法
这篇文章主要介绍了C#中动态数组用法,实例分析了C#中ArrayList实现动态数组的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C#中动态数组用法.分享给大家供大家参考.具体分析如下 ...
- 创建一个抽象的员工类, 抽象开发累继承员工类,JavaEE ,和安卓继承开发类在测试类中进行测试
/* 1 定义一个员工类 所有的子类都抽取(抽象类) Employee 属性:姓名 工号(生成get set ) 方法:工作 抽象 2 定义一个研 ...
- JUnit操作指南-批量执行单元测试(将多个测试类捆绑在一起执行)
相关链接:https://github.com/junit-team/junit4/wiki/Aggregating-tests-in-suites
- python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装
前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...
- python+unittest框架第二天unittest之简单认识Test Suite:测试套件
今天了解下测试套件Test Suite,什么是测试套件,测试套件是由多个Test Case测试用例组成的,当然也可以由多个子测试套件组成. 接下来看下如果构建测试套件,构建测试套件的方法: 1.用un ...
- TestNG之执行测试类方式
TestNG提供了很多执行方式,下面做简单介绍. 1.XML指明测试类,按照类名执行,其中可以指定包名,也可指定无包名: 带包名,运行ParameterSample类和ParameterTest类 & ...
- XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)
当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...
- Spring4.2.3+Hibernate4.3.11整合( IntelliJ maven项目)(使用Annotation注解)(Junit测试类)
1. 在IntelliJ中新建maven项目 给出一个建好的示例 2. 在pom.xml中配置依赖 包括: spring-context spring-orm hibernate-core mysql ...
- Salesforce 开发整理(一)测试类最佳实践
在Sales force开发中完善测试类是开发者必经的一个环节,代码的部署需要保证至少75%的覆盖率,那么该如何写好测试类呢. 测试类定义格式如下: @isTest private class MyT ...
随机推荐
- IBM AIX创建lv
#lsvg 查看当前有哪些vgrootvgvgdb02vgdb01datavg#lslv maindb_index 查看maindb_index这个lv 位于哪个vg上,新的lv也要与之相同.LOGI ...
- mongodb的安装(linux下)
1.去官网下载安装包 2.解压tar包 tar -zxvf filename 3.移动路径,并进入路径 mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongod ...
- cento7.3下玩转sphinx
cento7.5下玩转sphinx 1 安装依赖文件 yum install postgresql-libs unixODBC 2 下载 wget http://sphinxsearch.com/fi ...
- Spring源码研究--下载-编译-导入eclipse-验证
一,环境配置 操作系统:Unbutu14.04LTS JDK: 1.8.0_40 git: 1.9.1 gradle: 2.2.1 二,源码下载-编译-导入eclipse-验证 1,下载 使用git直 ...
- create-react-app react脚手架
create-react-app react脚手架 官方脚手架 1.安装 npm install -g create-react-app 2.创建项目 create-react-app react-c ...
- mysql 随机查询 记录集
有时候需求需要随机从数据库查询若干条记录集,网上搜了一下,几篇博文都是些重复的.....不知道他们谁抄的谁的,这里除了介绍提供一种笔者自己想到的方法,本质都是利用mysql 的rand() 第一种方法 ...
- ffmpeg源码分析三:transcode_init函数 (转3)
原帖地址:http://blog.csdn.net/austinblog/article/details/25061945 transcode_init()函数是在转换前做准备工作的.下面看看其源代码 ...
- 【转】arm和x86的区别
来自: https://blog.csdn.net/u012513972/article/details/78349192/ 信不信,随便逮住一个人问他知不知道CPU,我想他的答案一定会是肯定的,但是 ...
- NHibernate-NativeSQL
一.调用方式 1.创建查询 var sql = session.CreateSQLQuery("SELECT * FROM sns_User WHERE UserName LIKE :use ...
- Linux实战教学笔记28:企业级LNMP环境应用实践
一,LNMP应用环境 1.1 LNMP介绍 大约在2010年以前,互联网公司最常用的经典Web服务环境组合就是LAMP(即Linux,Apache,MySQL,PHP),近几年随着Nginx Web服 ...