IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 【Pytest:Python 单元测试工具学习】 -> 正文阅读

[开发测试]【Pytest:Python 单元测试工具学习】

  • 由于是课程作业,所以是全英文的,词汇量不是很难吧。

Brief Introduction to Pytest

  • Pytest is a very mature and full-featured Python testing framework. It is simple, flexible and easy to use.
    It supports simple unit testing and complex function testing, and can also cooperate with third-party plug-ins for automatic testing.
    There are many third-party plug-ins that can be customized and extended.
    We can see more details in the official documents of pytest:
    https://www.osgeo.cn/pytest/contents.html

Installation

  • In CMD, enter the following command to install pytest:
    pip install -U pytest
    We can check the installed version of pytest by entering the following command. My running results are as follows:
    在这里插入图片描述

A Simple Testing

  • Firstly write a simple two functions, the second functions is for testing the first function.
    在这里插入图片描述
    Then, in the cmd or console (because I use Visual Studio Code, I will run in console), run pytest command to see whether the assert runs well.
    在这里插入图片描述
    Cause 1 not equal to 2, so assert(False) turns the FAILURES, gives us AssertionError.
    Change the line5, and rerun the pytest, then will pass the test.
    在这里插入图片描述
    在这里插入图片描述

Testing Whether Throws an Exception

  • We could use pytest.raises(Exception) to check whether this Exception is raised.
    在这里插入图片描述
    As we expected, the test_1() passed and test_2() failed because it didn’t raise the ‘SystemExit’ Exception.
    在这里插入图片描述

Test Classes

  • If we have several tests, we could class them together, but we need to add prefix ‘Test’ for class name , or we will skip test the class.
    在这里插入图片描述
    在这里插入图片描述
    It’s beneficial for us to make several relevant tests into one class.

Some Basic API For Pytest

  • According to the official document, I will introduce several important API here.
  1. Fail(msg,pytrace) -> NoReturn
    在这里插入图片描述
    It means if we use ‘pytest.fail(mes)’ , it will show the error message.
    If we let second argument be false, then the trace will not show the fail message.
    在这里插入图片描述
    在这里插入图片描述
    See, Only test_1 shows the trace, but test_2 only shows ‘Special Error2’
  2. Pytest.raises
    It declares that the code blocks will raise expected exception. Otherwise, it will cause fail exception.
    It could use like I mentioned above:
    在这里插入图片描述
    Also, could detect the defined exception, for example, ValueError
    在这里插入图片描述
  3. Pytest.approx
    Some times, we want to compare two float numbers whether they are equal, we may write in the form of ‘0.1 + 0.2 == 0.3’. However, this may be wrong due to the storage way of floating numbers.
    So, we may write ‘abs((0.1 + 0.2) - 0.3) < 1e-6’. However, it’s more complicated for us to understand. And, 1e-6 seems good for number 1, but bad for number 1e18.
    So , we use approx so that it’s better to check the equality of two numbers, or even list and etc.
    在这里插入图片描述
    在这里插入图片描述

Conclusion About Pytest

  • Pytest has many advantages:
  1. Automatically find test functions and cases.
  2. Convenient declarations to match exceptions.
  3. Run testing cases, modules, and classes smoothly.
  4. Various pluggable units are available.
  5. Compatible with unnitest or nose.

For testing part, it will show all the traces so that we could know which testing cases are not pass, as well as their exceptions.

References

  1. Pytest 官方文档:https://www.osgeo.cn/pytest/contents.html
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:59:12  更:2021-12-16 17:59:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 6:33:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码