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 功能,阅读开源代码的时候如同有一个老师在身旁, 更加有底气。

  • 增加使用经验和熟练度,发掘更多的使用场景,形成工作流
  • 多看看视频和博客,参考其他工程师的使用的心得
相关推荐
陈天伟教授3 小时前
人工智能训练师认证教程(2)Python os入门教程
前端·数据库·python
2301_764441333 小时前
Aella Science Dataset Explorer 部署教程笔记
笔记·python·全文检索
爱笑的眼睛113 小时前
GraphQL:从数据查询到应用架构的范式演进
java·人工智能·python·ai
BoBoZz193 小时前
ExtractSelection 选择和提取数据集中的特定点,以及如何反转该选择
python·vtk·图形渲染·图形处理
liwulin05063 小时前
【PYTHON-YOLOV8N】如何自定义数据集
开发语言·python·yolo
木头左4 小时前
LSTM量化交易策略中时间序列预测的关键输入参数分析与Python实现
人工智能·python·lstm
电子硬件笔记4 小时前
Python语言编程导论第七章 数据结构
开发语言·数据结构·python
HyperAI超神经5 小时前
【vLLM 学习】Prithvi Geospatial Mae
人工智能·python·深度学习·学习·大语言模型·gpu·vllm
逻极5 小时前
Python MySQL防SQL注入实战:从字符串拼接的坑到参数化查询的救赎
python·mysql·安全·sql注入
赫凯5 小时前
【强化学习】第一章 强化学习初探
人工智能·python·强化学习