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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> programming ——test -> 正文阅读

[开发测试]programming ——test

  • 从最简单的assert函数讲起

assert solve_quadratic(1,0,-1)==(1.0,1.0)

-函数功能测试

  • testmod()函数

we can use this function to write a simple programm:

import doctest


doctest 库 可以用来利用注释来测试代码正确性。

def mean(x):
    """Mean of a list of numbers.

    >>> mean([1, 5, 9])
    5.0

    """
    return sum(x)/len(x)

这里的??>>> mean([1, 5, 9])?表示测试的代码,下面是期待的输出。

if __name__ == "__main__":
    import doctest
    doctest.testmod()
if __name__ == "__main__": 下面的内容是scipt 中的内容(执行段)

综上,test accessories 由3部分组成:

  • import doctest 函数

  • 在代码中写测试example

  • 加一句:doctest.testmod()

  • doctest.testfile()函数

这个函数由两部分组成:testfile.txt 文件(和上面的测试格式一样)还有doctest.testfile('testfile.txt ')

另外,这里可以加verbose = true 来显示测试细节。

  • unittest函数

第一步,import 原函数(这里foo是要测试的package,这个package下有很多的函数)

import unittest
import foo

为了节省内存,写两个小函数

def expensive_function():
    """Pretend this uses a lot of resources."""
    return (1, 0, -1)

def make_safe(val):
    """This might clean up memory or free up resources"""
    pass

测试用的主函数:

class TestSolveQuadratic(unittest.TestCase):

    def setUp(self):
        """Runs first."""
        # Can create values stored in the class instance self

        self.val = expensive_function()

    def test_solve_quadratic_part_one(self):

        self.assertEqual(foo.solve_quadratic(*self.val), (-1.0, 1.0))
        self.assertEqual(foo.solve_quadratic(1, 0, 0), 0.0)

    def test_solve_quadratic_part_two(self):
        self.assertEqual(foo.solve_quadratic(1, 0, 1), None)

    def tearDown(self):
        """Called at the end if we need to clean up."""
        make_safe(self.val)

这里的setup函数,设定self数值(ps,如果是手动输入,要用-- initial --函数)

test系列的函数,会依次执行,用 self.assertequal 函数来写测试案例。

最后加一句:

unittest.main()

搞定。

  • terminal 里用 pytest 来test

第一步,写好package, 这里的 package 名字是 foo

import numpy as np  # for the sqrt function


def solve_quadratic(a, b, c):
    """Solve a quadratic equation ax^2+bx+c=0 in the reals"""
    if 0 < b**2-4.0*a*c:
        # two solutions
        return ((-b-np.sqrt(b**2-4.0*a*c))/(2.0*a),
                (-b+np.sqrt(b**2-4.0*a*c))/(2.0*a))
    elif 0 == b**2-4.0*a*c:
        # one solution
        return -b/(2.0*a)
    else:
        # no solutions
        return None

第二步,写好测试案例

import foo

def test_solve_quadratic_part_one():
    
    assert foo.solve_quadratic(1,0,-1)==(-1.0,1.0)
    assert foo.solve_quadratic(1,0,0)==0.0

def test_solve_quadratic_part_two():
    assert foo.solve_quadratic(1,0,1) is None

这里引用foo package 然后用 assert 来写测试案例。

第三步,在命令行里输入:

python -m pytest --doctest-modules pytest_example.py

搞定。

  • 用pytest-cov来检查代码测试的coverage?

def test_even_numbers():
   with pytest.raises(NoEvenNumbersHereException):
       only_odd_mul(2,4)

值得注意,这段 with pytest.raises()代码用来检查:

raise NoEvenNumbersHereException(f'{x} and/or {y}
 ?not odd')

raise 报错函数。

这两段代码,用来检查coverage:

pip install pytest-cov

pytest --cov=foo pytest_example.py

搞定。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:09:53  更:2021-12-13 13:10:08 
 
开发: 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:41:56-

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