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 ...
随机推荐
- java之IO整理(上)
/*//创建一个新文件 public static void main(String[] args) { File file=new File("D:\\hello.txt"); ...
- 遇到版本兼容问题时 Newtonsoft.Json
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <depen ...
- Entity Framework 5.0系列之EF概览-三种编程方式
概述 在开发面向数据的软件时我们常常为了解决业务问题实体.关系和逻辑构建模型而费尽心机,ORM的产生为我们提供了一种优雅的解决方案.ADO.NET Entity Framework是.NET开发中一种 ...
- mysql压缩表空间
REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化表 OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] ...
- HTTP接口开发专题三(发送http请求,调用http接口的流程)
一.xml数据格式传输 1)构造xml参数:通过JAXB将java对象转换为xml 2)调用上一篇的http工具类的方法,发送请求到目的接口地址 3)返回的xml字符串结果,用JAXB进行解析成jav ...
- views获取数据 -- request包含的方法
request.GET request.POST request.FILES request.path_info request.xxx.getlist request.method request. ...
- BLE 周边设备断开
运行中,突然远程设备断开. TBluetoothLEDevice.IsConnected 为false了. 再次搜索,订阅, BluetoothLE1.SubscribeToCharacteristi ...
- springboot整合最新版dubbo以及dubbo-admin的安装
一.安装前准备 由于dubbo被阿里捐献给了apache,这次安装admin时,参考网上的资料,地址还是停留在之前的链接,踩了不少坑,这里记录下. dubbo-admin下载地址: 地址一:https ...
- UVALIVE 4556 The Next Permutation
4556 The Next PermutationFor this problem, you will write a program that takes a (possibly long) str ...
- Excel另存为_有些Excel打开时会出现一些提示
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...