安装:

pip install pytest

pip install pytest-cov

utils.py代码

  1. def add(a, b):
  2. return a+b
  3.  
  4. def inc(x):
  5. return x + 1
  6.  
  7. def func_except():
  8. raise SystemExit(1)  

test_utils.py 代码

  1. # -*- coding:utf-8 -*-
  2.  
  3. import pytest
  4. from utils import add, inc, func_except
  5.  
  6. def test_add():
  7. assert add(1,1) == 2
  8. assert add(1,2) == 3
  9.  
  10. def test_answer():
  11. assert inc(3) == 4
  12.  
  13. def test_mytest():
  14. with pytest.raises(SystemExit):
  15. func_except()
  16.  
  17. # content of test_class.py
  18. class TestClass(object):
  19. def test_one(self):
  20. x = "this"
  21. assert 'h' in x
  22.  
  23. def test_two(self):
  24. x = "hello"
  25. assert hasattr(x, 'find')

运行测试:

  1. >pytest .
  2. ========================================================================================================== test session starts ===========================================================================================================
  3. platform win32 -- Python 3.7.3, pytest-5.0.0, py-1.8.0, pluggy-0.12.0
  4. rootdir: C:\Users\l00379637\PycharmProjects\cis_algo_refator
  5. plugins: cov-2.7.1
  6. collected 5 items
  7.  
  8. test_utils.py ..... [100%]
  9.  
  10. ======================================================================================================== 5 passed in 0.16 seconds ========================================================================================================

  

查看覆盖率:

pytest --cov=./

  1. pytest --cov=./
  2. ========================================================================================================== test session starts ===========================================================================================================
  3. platform win32 -- Python 3.7.3, pytest-5.0.0, py-1.8.0, pluggy-0.12.0
  4. rootdir: C:\Users\l00379637\PycharmProjects\cis_algo_refator
  5. plugins: cov-2.7.1
  6. collected 5 items
  7.  
  8. test_utils.py ..... [100%]
  9.  
  10. ----------- coverage: platform win32, python 3.7.3-final-0 -----------
  11. Name Stmts Miss Cover
  12. -----------------------------------
  13. test_utils.py 17 0 100%
  14. utils.py 6 0 100%
  15. -----------------------------------
  16. TOTAL 23 0 100%
  17.  
  18. ======================================================================================================== 5 passed in 0.20 seconds ========================================================================================================

  

  

pytest使用的更多相关文章

  1. flask-sqlalchemy、pytest 的单元测试和事务自动回滚

    flask-sqlalchemy.pytest 的单元测试和事务自动回滚 使用 flask-sqlalchemy 做数据库时,单元测试可以帮助发现一些可能意想不到的问题,像 delete-cascad ...

  2. Python单元测试框架之pytest -- 断言

    对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就 ...

  3. Python单元测试框架之pytest -- fixtures

    fixtures不太好翻译,可看作是夹心饼干最外层的两片饼干.通常用setup/teardown来表示.它主要用来包裹测试用例,为什么需要这样的饼干呢?我们以web自动化测试为例,例如,要测试的某系统 ...

  4. Python单元测试框架之pytest -- 生成测试报告

    继续pytest单元测试框架的学习,pytest可以生成多种类型的测试报告.这一节就来学习pytest如何生成测试报告. 创建test_calss.py 测试用例文件,这里以测试该文件为例. #cod ...

  5. 使用 tox flake8 pytest 规范 python 项目

    使用 tox flake8 pytest 规范 python 项目 python 中有些很好的工作来规范整个项目的开发,而其中使用较多的就是使用 tox . flake8 . pytest . tox ...

  6. pytest学习笔记(三)

    接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, test_compute.py ...

  7. pytest学习笔记(二)

    继续文档的第二章 (一)pytest中可以在命令行中静态/动态添加option,这里没什么好讲的,略过... 这里面主要讲下如何试用skip/xfail,还有incremental(包含一些列的测试步 ...

  8. pytest进阶之配置文件

    前言 pytest配置文件能够改变pytest框架代码的运行规则.比如修改pytest收集用例的规则,添加命令行参数等等!下面我们来一一讲解常用的一些配置项 Help 通过命令pytest --hel ...

  9. pytest进阶之html测试报告

    前言 Pytest系列已经写了几篇文章了,也不知道对多少人有帮助,总之对于我自己来说该掌握的都已经掌握了,那么今天我们再来说说pytest如何生成一个完整的html测试报告,让你在吹牛逼的路上再多一份 ...

  10. pytest进阶之xunit fixture

    前言 今天我们再说一下pytest框架和unittest框架相同的fixture的使用, 了解unittest的同学应该知道我们在初始化环境和销毁工作时,unittest使用的是setUp,tearD ...

随机推荐

  1. node 单例

    ScriptManager.getInstance = function () { if (_instance != null) { return _instance; } else { return ...

  2. vscode插件Power Mode

    Power Mode官网 设置里添加 "powermode.enabled": true, "powermode.presets": "flames& ...

  3. noip2019集训测试赛(二十一)Problem A: Colorful Balls

    Problem A: Colorful Balls Description Snuke放了N个一排彩色的球.从左起第i个球的颜色是ci重量是wi她可以通过执行两种操作对这些球重新排序操作1:选择两个相 ...

  4. UML概念模型

    UML概念模型 UML(Unified Modeling Language):统一建模语言,为面向对象开发系统的产品进行说明.可视化.和编制文档的标准语言 面向对象程序设计 面向对象基本概念:对象.类 ...

  5. 数组,const,#define

    #include<stdio.h> #define COUNT 6 int main(){// const类型的常量不能作为数组的个数,大部分编译器不支持//    const int C ...

  6. PHP网文

    1.php底层运行机制及原理 https://cloud.tencent.com/developer/article/1055801

  7. macbook下使用pycharm2019版本配置远程连接服务器

    pycharm提供了很方便的与服务器同步代码,并执行的插件.我在配置windows版的pycharm时配置成功,在挪用到mac上则遇到了些许问题,终于是解决了,在此记录配置的过程 目的:pycharm ...

  8. linux查看进程与结束进程

    查看所有进程 ps -ef ps -ef | grep 查找的进程名 结束进程 ps -ef | grep 查找的进程名 | grep -v grep | awk '{print $2}' | xar ...

  9. 不一样的go语言-go缺少的语言特性

      相信很多从其他语言转向go语言的人,或者是几乎所有初学go语言的人(我相信目前还没有学校将go作为教学语言,所以未来的IT工程师的第一语言都不会是go),都会在学习的过程中将go与自己的第一语言. ...

  10. 组件系列之RabbitMQ

    官网: https://www.rabbitmq.com/getstarted.html 1.四种交换机 TODO... 2.消费者获取消息方式:推 和 拉 拉取:每次拉取一条,循环拉取需要的条数在批 ...