背景知识
单元测试在我们的开发过程中非常有必要,它可以验证实现的一个函数是否达到预期。以前在学校写代码时,都是怼一堆代码,然后直接运行,如果报错再一步步调试,这样大部分时间都浪费在调试工作上。工作后发现大家都使用单元测试,这样做其实更规范,也提高了开发的效率。
官方文档:
https://code.visualstudio.com/docs/python/testing
vscode的单元测试
在vscode
中,我们可以实现对编写的每一个函数进行单元测试,理应每实现一个函数都有一个单元测试的用例,也就是使用下面这个东西。
演示
新建一个
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
文件中。在Testing中配置测试文件
点击左边栏的Tesing,配置python测试文件
依次选择:unittest
->Root Directory
->*test.py
,这里表示使用unittest框架测试,测试文件的格式为*test.py
随后在项目目录中多了一个.vscode文件夹,其中包含一个settings.json文件,在这里可以设置项目的一些配置。添加launch.json文件,改文件用于配制项目调试的启动选项。
{"version": "0.2.0","configurations": [{"name":"Python: Current File","type":"python","request":"launch","program":"${file}","console":"integratedTerminal",}]}
为了更好的管理测试文件,我们新建一个tests文件夹,用于存放单元测试文件,并在settings.json文件中指定改文件夹。
在tests目录新建测试文件,注意需要以
*test.py
结尾,例如array_sort_test.py
在
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))
在Testing中运行单元测试用例
大功告成!!