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

  • 增加使用经验和熟练度,发掘更多的使用场景,形成工作流
  • 多看看视频和博客,参考其他工程师的使用的心得
相关推荐
Pocker_Spades_A6 分钟前
Python快速入门专业版(十五):数据类型实战:用户信息录入程序(整合变量、输入与类型转换)
数据库·python
IMER SIMPLE10 分钟前
人工智能-python-深度学习-神经网络-GoogLeNet
人工智能·python·深度学习
小宁爱Python23 分钟前
Django 从环境搭建到第一个项目
后端·python·django
带娃的IT创业者1 小时前
如何开发一个教育性质的多线程密码猜测演示器
网络·python·算法
luckys.one6 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
大翻哥哥8 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融
zhousenshan9 小时前
Python爬虫常用框架
开发语言·爬虫·python
IMER SIMPLE9 小时前
人工智能-python-深度学习-经典神经网络AlexNet
人工智能·python·深度学习
CodeCraft Studio10 小时前
国产化Word处理组件Spire.DOC教程:使用 Python 将 Markdown 转换为 HTML 的详细教程
python·html·word·markdown·国产化·spire.doc·文档格式转换
专注API从业者10 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python