pytest的参数化测试
感觉在单元测试当中可能有用,
但在django这种框架中,用途另一说。
import pytest import tasks from tasks import Task def test_add_1(): task = Task('breathe', 'Brian', True) task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, task) @pytest.mark.parametrize('task', [Task('sleep', done=True), Task('wake', 'brian'), Task('breath', 'BRIAN', True), Task('exercise', 'BrIaN', False)]) def test_add_2(task): task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, task) @pytest.mark.parametrize('summary, owner, done', [('sleep', None, False), ('wake', 'brian', False), ('breath', 'BRIAN', True), ('eat eggs', 'BrIaN', False), ]) def test_add_3(summary, owner, done): task = Task(summary, owner, done) task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, task) tasks_to_try = (Task('sleep', done=True), Task('wake', 'brian'), Task('breath', 'BRIAN', True), Task('exercise', 'BrIaN', False)) @pytest.mark.parametrize('task', tasks_to_try) def test_add_4(task): task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, task) task_ids = ['Task({},{},{})'.format(t.summary, t.owner, t.done) for t in tasks_to_try] @pytest.mark.parametrize('task', tasks_to_try, ids=task_ids) def test_add_5(task): task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, task) @pytest.mark.parametrize('task', [ pytest.param(Task('create'), id='just summary'), pytest.param(Task('inspire', 'Michelle'), id='summary/owner'), pytest.param(Task('encourage', 'Michelle', True), id='summary/owner/done'),]) def test_add_6(task): task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, task) @pytest.mark.parametrize('task', tasks_to_try, ids=task_ids) class TestAdd: def test_equivalent(self, task): task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, task) def test_valid_id(self, task): task_id = tasks.add(task) t_from_db = tasks.get(task_id) assert t_from_db.id == task_id def equivalent(t1, t2): return (t1.summary == t2.summary) and (t1.owner == t2.owner) and (t1.done == t2.done) @pytest.fixture(autouse=True) def initialized_tasks_db(tmpdir): tasks.start_tasks_db(str(tmpdir), 'tiny') yield tasks.stop_tasks_db()
pytest的参数化测试的更多相关文章
- Pytest 学习(二十五)- 解决pytest参数化测试标题都一样问题
前言 使用参数化测试化后,allure的报告如下显示: 源代码如下: # -*- coding: utf-8 -*- # @Time : 2020/12/13 17:27 # @Author : lo ...
- Python 中如何实现参数化测试?
Python 中如何实现参数化测试? 之前,我曾转过一个单元测试框架系列的文章,里面介绍了 unittest.nose/nose2 与 pytest 这三个最受人欢迎的 Python 测试框架. 本文 ...
- Google C++单元测试框架GoogleTest---值参数化测试
值参数化测试允许您使用不同的参数测试代码,而无需编写同一测试的多个副本. 假设您为代码编写测试,然后意识到您的代码受到布尔参数的影响. TEST(MyCodeTest, TestFoo) { // A ...
- JMeter学习-026-JMeter 分布式(远程)参数化测试实例
以前文所述对文章详情的HTTP请求进行性能测试为例.日常实际场景中,不可能所有的人都在同时访问一篇文章,而是多人访问不同的文章,因而需要对文章编号进行参数化,以更好的模拟日常的性能测试场景.同时,因文 ...
- Junit4参数化测试实现程序与用例数据分离
http://touchfu.iteye.com/blog/732930 现状:你是不是还在为自己的TestCase代码杂乱无章而苦恼,咎其根本还在于针对不同的用例,输入参数和mock信息的组装全部作 ...
- 同时使用Junit4的@Parameterized参数化测试和Spring容器
转载:http://www.jianshu.com/p/d191fe54915f 整合Spring容器 @SpringApplicationConfiguration(classes = Applic ...
- MSTest不支持参数化测试的解决方案
之前的项目中做单元测试一直用的是NUnit,这次做新项目,负责人要求统一用MsTest,理由是MsTest是Visual Studio内置的.用就用吧,我没什么意见.不过用了两天,我就发现一个大问题: ...
- 用JUnit4进行参数化测试
参数化测试是一个JUnit 3不具备的功能. 基本使用方法 @RunWith 当类被@RunWith注解修饰,或者类继承了一个被该注解修饰的类,JUnit将会使用这个注解所指明的运行器(runner) ...
- junit参数化测试的使用方法
JUnit参数化测试的五个步骤:(1)为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized.(2)为测试类声明几个变量,分别用于存放期望值和测试 ...
随机推荐
- NATS_01:NATS基础介绍
1.介绍 NATS(Message bus): 从CloudFoundry的总架构图看,位于各模块中心位置的是一个叫nats的组件.NATS是由CloudFoundry的架构师Derek开发的一个开源 ...
- Spring知识总结
一.Spring简述 Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架,Spring致力于提供一种方法管理你的业务对象,Spring的主要目的是使JavaE ...
- [Java] 理解JVM之一:工作机制及基本结构
一.基本结构 类加载器:在 JVM 启动时或在类运行时需要将类的字节码信息加载到 JVM 内存区域中. 执行引擎:负责执行字节码信息中包含的字节码指令,相当于实际机器上的 CPU. 内存区域:也被称为 ...
- vs配置SP++3.0
最近在研究信号处理的C语言算法,突然发现一个西安交大的师兄之前已经写出来了一个完整的库,同样是研究生三年,差别怎么这样大呢. 先从用轮子开始吧. 一.SP++3.0安装及测试 官网下载地址: http ...
- RAC转换传统的通信
///////////////////各种机制转信号/////////////////////////////// 1.UI事件 [self.logInButton rac_signalForCont ...
- 项目Header组件的开发注意事项
npm install stylus --save npm install stylus-loader --save 移动端一般采用rem布局方式 Header组件里iconfont的使用和代码优化: ...
- jdk源码
Java 8 之默认方法(Default Methods) public interface Player { String getName(); default boolean isMale() { ...
- asp.net 练习 js 调用webservice
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 05.UIDynamic
CHENYILONG Blog 05.UIDynamic Fullscreen © chenyilong. Powered by Postach.io Blog
- Trying to get property of non-object
原文:http://www.jb51.net/article/29878.htm 总结:判断为空用 if(isset($v)){}代替if($v == null){}