copilot 产生 python工具函数并生成单元测试

stock.py 这个文件,我只写了注释(的开头),大部分注释内容和函数都是copilot

py 复制代码
# split a string and extract the environment variable from it 
# input can be '', 'path=abc', 'path=abc;path=def', 'path=abc;path=def;path=ghi'
# output is a list of tuple environment variables(key and value)
def split_env_var(env_var):
    env_var_list = []
    if env_var == '':
        return env_var_list
    else:
        env_var_list = env_var.strip(';').split(';')
        env_var_list = [tuple(x.split('=')) for x in env_var_list]
        return env_var_list
  

再新建一个 stock_test.py,写一行注释,Ctrl+L(或者调用 Open compiletion Panel)产生了很多的单元测试样例。

py 复制代码
#this is test of stock.py
import unittest
from stock import split_env_var

class TestStock(unittest.TestCase):
    def test_empty(self):
        self.assertEqual(split_env_var(''), [])
    def test_empty2(self):
        self.assertEqual(split_env_var(';'), [('',)])
    def test_one(self):
        self.assertEqual(split_env_var('path=abc;'), [('path', 'abc')])
    def test_two(self):
        self.assertEqual(split_env_var('path=abc;path=def'), [('path', 'abc'), ('path', 'def')])
    def test_three(self):
        self.assertEqual(split_env_var('path=abc;path=def;path=ghi'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi')])
    def test_four(self):
        self.assertEqual(split_env_var('path=abc;path=def;path=ghi;'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi')])
    def test_five(self):
        self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl')])
    def test_six(self):
        self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl')])
    def test_seven(self):
        self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;path=mno'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl'), ('path', 'mno')])
    def test_eight(self):
        self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;path=mno;'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl'), ('path', 'mno')])
    def test_nine(self):
        self.assertEqual(split_env_var('path=abc;path=def;path=ghi;path=jkl;path=mno;path=pqr'), [('path', 'abc'), ('path', 'def'), ('path', 'ghi'), ('path', 'jkl'), ('path', 'mno'), ('path', 'pqr')])

if __name__ == '__main__':
    unittest.main()

再装一个 Python Test Explorer 插件用来进行 GUI test

附上我的 python test gui 配置

.vscode/settings.jon

json 复制代码
{
  "python.testing.unittestEnabled": true,
  "python.testing.unittestArgs": [
    "-v",
    "-s",
    "./tmp",
    "-p",
    "*_test.py"
  ],
}

有了 copilot 这个代码神器,之后的代码效率可以提升很多,之后要学会和这个超级智能助手交流,使用 pilot chat 功能,阅读开源代码的时候如同有一个老师在身旁, 更加有底气。

  • 增加使用经验和熟练度,发掘更多的使用场景,形成工作流
  • 多看看视频和博客,参考其他工程师的使用的心得
相关推荐
--FGC--12 分钟前
【第2篇】 Python与数据库基础
数据库·python·oracle
m0_6305206413 分钟前
Python初识
开发语言·python
power-辰南1 小时前
机器学习之数据分析及特征工程详细分析过程
人工智能·python·机器学习·大模型·特征
浊酒南街5 小时前
决策树python实现代码1
python·算法·决策树
FreedomLeo16 小时前
Python机器学习笔记(十三、k均值聚类)
python·机器学习·kmeans·聚类
星光樱梦6 小时前
32. 线程、进程与协程
python
阿正的梦工坊6 小时前
深入理解 PyTorch 的 view() 函数:以多头注意力机制(Multi-Head Attention)为例 (中英双语)
人工智能·pytorch·python
西猫雷婶7 小时前
python学opencv|读取图像(十九)使用cv2.rectangle()绘制矩形
开发语言·python·opencv
海绵波波1077 小时前
flask后端开发(10):问答平台项目结构搭建
后端·python·flask
赵谨言8 小时前
基于python网络爬虫的搜索引擎设计
爬虫·python·搜索引擎