背景知识

单元测试在我们的开发过程中非常有必要,它可以验证实现的一个函数是否达到预期。以前在学校写代码时,都是怼一堆代码,然后直接运行,如果报错再一步步调试,这样大部分时间都浪费在调试工作上。工作后发现大家都使用单元测试,这样做其实更规范,也提高了开发的效率。

官方文档:

https://code.visualstudio.com/docs/python/testing

vscode的单元测试

vscode中,我们可以实现对编写的每一个函数进行单元测试,理应每实现一个函数都有一个单元测试的用例,也就是使用下面这个东西。

演示

  1. 新建一个python项目,实现一个冒泡排序算法

    class ArraySort:def bubble_sort(self, arr):n = len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] > arr[j+1]:arr[j], arr[j+1] = arr[j+1], arr[j]return arr

    这里实现了一个冒泡排序算法,命名为bubble_sort,并放置在src目录的array_sort.py文件中。

  2. 在Testing中配置测试文件
    点击左边栏的Tesing,配置python测试文件

    依次选择:unittest -> Root Directory -> *test.py,这里表示使用unittest框架测试,测试文件的格式为*test.py

    随后在项目目录中多了一个.vscode文件夹,其中包含一个settings.json文件,在这里可以设置项目的一些配置。

  3. 添加launch.json文件,改文件用于配制项目调试的启动选项。

    {"version": "0.2.0","configurations": [{"name":"Python: Current File","type":"python","request":"launch","program":"${file}","console":"integratedTerminal",}]}
  4. 为了更好的管理测试文件,我们新建一个tests文件夹,用于存放单元测试文件,并在settings.json文件中指定改文件夹。

  5. 在tests目录新建测试文件,注意需要以*test.py结尾,例如array_sort_test.py

  6. array_sort_test.py中编写单元测试用例,需要引入unittest模块,并以test开头命名类和方法

    import unittestfrom src.array_sort import ArraySortarray_sort = ArraySort()class ArraySortTest(unittest.TestCase):def test_bubble_sort(self):nums = [2, 3, 6, 1, 7, 3, 4]print(array_sort.bubble_sort(arr=nums))
  7. 在Testing中运行单元测试用例

  8. 大功告成!!